私のページには次のフォームがあります。
<form:form id="addUnitForm" method="POST" modelAttribute="questionUnit">
<fieldset>
<label for="questionText">Question</label> <input type="text"
id="questionText" class="required" value="${questionContent[0] }" /><br/>
Answers
<c:forEach var="i" begin="1" end="${questionContentSize-1 < 0 ? 0 : questionContentSize-1 }">
<div id="answerRow">
<input type="text" id="questionAnswer" name="questionAnswer${i }" class="required" value="${questionContent[i] }"/>
<input type="checkbox" id="questionAnswerCheckbox" ${answerContent.contains(questionContent[i]) ? 'checked="checked"' : ''}/>
<input type="button" id="removeAnswer" value="x" />
</div>
</c:forEach>
</fieldset>
<input type="submit" value="OK" />
<input type="button" value="Add answer" id="Add_answer" />
</form:form>
これで、同じフォームがあり、名前属性がなく(idのみ)、すべてのinput
要素が同じ値のid
属性を持ち、属性がないname
場合、フォームを送信すると、questionText
idを持つフィールドのみが検証され、残りは検証されませんでした。
今、私は私のフォームのすべてに一意の名前を追加しました、そしてすべてがうまくいくので、ここに私の3つの質問がありますinput
:id
questionAnswer
- 属性
questionText
がない場合でも、jqueryバリデーターはどのように検証されますかname
name
どの要素を検証するかを決定するためにjqueryバリデーターによって内部的に使用される属性はありますか?- 入力のある行が複数ある場合
questionAnswer
、どの行を空のままにしても、最初の行の近くにエラーメッセージが表示されるのはなぜですか?
編集:これはブラウザからのフォームコードです
<fieldset>
<label for="questionText">Question</label> <input type="text" value="" class="required valid" id="questionText"><br>
Answers
<div id="answerRow">
<input type="text" class="required valid" id="questionAnswer" name="questionAnswer0">
<input type="checkbox" id="questionAnswerCheckbox">
<input type="button" value="x" id="removeAnswer" class="ui-button ui-widget ui-state-default ui-corner-all" role="button" aria-disabled="false">
</div>
<div id="answerRow">
<input type="text" class="required valid" id="questionAnswer" name="questionAnswer1">
<input type="checkbox" id="questionAnswerCheckbox">
<input type="button" value="x" id="removeAnswer" class="ui-button ui-widget ui-state-default ui-corner-all" role="button" aria-disabled="false">
</div>
</fieldset>