Ich habe ein Problem mit dem vorhandenen Code, der HTML und JS verwendet. Die Seite hat eine HTML-Tabelle, die einen Radiobutton und 4 weitere Felder hat. Die Tabelle wird dynamisch erstellt, wenn wir Werte über den Controller festlegen. Ich kann auch neue Zeilen in der Tabelle hinzufügen, die komplett über JS erledigt werden. Jetzt ist das Problem, ich habe 2 Zeilen vom Controller eingefügt und eine neue Zeile durch einen Klick hinzugefügt. Also habe ich jetzt 3 Radiobutton. Wenn ich einen Radio-Button unter der Controller-Zeile auswähle, wählt er nur einen aus, was in Ordnung ist. Wenn ich den dritten Button wähle, kann ich zwei ausgewählte Radio-Buttons sehen, was nicht korrekt ist. Auf jeden Fall sollte es nur einen auswählen. Wenn ich Quelltext anzeigen sehe ich nicht den Eintrag für das Javascript hinzugefügt neue Zeile, so dass ich hoffe, das Problem ist wegen der ID generiert? Bitte lassen Sie mich wissen, wie kann ich dieses Problem lösen?Optionsfeldauswahl funktioniert nicht wie erwartet
Java-Controller
List <MyQuestion> fetchedQuestions = AppImpl.getMyQuestions(id);
for (int index=0; index< fetchedQuestions.size() ; index++){
MyQuestion questionsToAdd= fetchedQuestions.get(index);
questionList.add(questionsToAdd);
}
myqstntemplate.setMyQuestions(questionList);
templatebean.setQuestionTemplate(myqstntemplate);
}
JScode
function addRow(){
isDirty=true;
if(document.getElementById('value').value != 'value'){
rowNumber = document.getElementById('questionsSize').value;
document.getElementById('value').value='value';//other option is novalue
}
var questionId=document.getElementById('questionsSize').value;
questionId=parseInt(questionId)+1;
document.getElementById('questionsSize').value = questionId;
var newRow = $('<tr/>').attr('id', 'row' + rowNumber);
//Add some HTML to the row
newRow.html('<td><input type="hidden" id="newQuestion'+rowNumber+'" value="'+questionId+'"/><input id="question" name="question" type="radio" style="width:20px;" value="" onclick="setSelectedQuestion(\''+rowNumber+'\',\'new\')"/></td><td class="newRow" align="center" style="vertical-align: middle;">'+questionId+'<input type="hidden" value="newQuestion"/></td> <td colspan="2"><input style="width: 397px;" id="myQstnTemplate.questions['+rowNumber+'].question" name="myQstnTemplate.questions['+rowNumber+'].question" type="text" value="" maxlength="256" onclick="enableDirty()" style="text-align:left;"/><div id="pencil" title="Edit helptext" class="pencil-img fltRight" style="border: 0pt;padding-right: 15px; " onclick="displayHelpText('+rowNumber+',\'new\');return false;"></div><input id="myQstnTemplate.questions['+rowNumber+'].questionId" name="myQstnTemplate.questions['+rowNumber+'].questionId" type="hidden" value="-1" /><input style="width: 350px;" id="myQstnTemplate.questions['+rowNumber+'].helptext" name="myQstnTemplate.questions['+rowNumber+'].helptext" type="hidden" value="" onclick="enableDirty()" style="text-align:left;"/></td><td><select style="width:100px;" id="myQstnTemplate.questions['+rowNumber+'].schemeId" name="myQstnTemplate.questions['+rowNumber+'].schemeId"><option value="-1">Select</option><c:forEach var="answer" items="${myqstionTemplateBean.answerTypes}"><option title="${answer.questions}" value="${answer.displaySchemeId}">${answer.answerTypeName}</option></c:forEach></select></td> <td><div><input type="hidden" id="question'+rowNumber+'" name="question'+rowNumber+'" value="'+rowNumber+'"/><select id="myQstnTemplate.questions['+rowNumber+'].ansId" name="myQstnTemplate.questions['+rowNumber+'].ansId" style="width:100%"><option value="-1">Select</option><c:forEach var="ansId" items="${myqstionTemplateBean.ansIds}"><option value="${ansId}" <c:if test="${ansId eq question.ansId}">selected</c:if>>${ansId}</option></c:forEach></select></div></td>');
//Append the new row to the body of the #myTable table
$('#qstionTable tbody').append(newRow);
//Iterate row number
rowNumber++;
}
Quote: "Fragen, die Debugging-Hilfe suchen (" ** warum funktioniert dieser Code nicht? ** ") muss das gewünschte Verhalten, ein * spezifisches Problem oder Fehler und den kürzesten erforderlichen Code * enthalten, um es zu reproduzieren ** die Frage selbst. ** Fragen ohne ** eine klare Problemaussage ** sind für andere Leser nicht nützlich. Siehe: [Wie man ein minimales, komplettes und überprüfbares Beispiel erstellt] (http://stackoverflow.com/help/mcve). " – Siguza
wo ist dein Code? – ozil
Sie sollten Ihren Code einfügen, aber ich nehme an, dass Sie den Namen des hinzugefügten Radiobuttons nicht richtig festgelegt haben. Optionsfelder werden nach ihren Namen gruppiert, sodass der dritte RB denselben Namen wie die ersten beiden haben muss. Der Grund dafür, dass Sie den RB im Quellcode nicht sehen können, ist, dass der Quellcode keine dynamisch erstellten Elemente enthält. Wenn Sie mit der rechten Maustaste auf den RB klicken und auf "Element prüfen" klicken, wird es in der Konsole angezeigt. –