【发布时间】:2012-08-28 13:40:52
【问题描述】:
我的页面中有这个表格:
<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 已验证,其余未验证。
现在,我在表单中为每个input 和questionAnswer 添加了唯一名称,一切正常,所以这是我的三个问题:
- 怎么样,即使没有
name属性,jquery 验证器也验证了questionText -
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>
【问题讨论】:
标签: jquery validation jquery-validate