为什么Spring MVC会在路径后面附加一个“ 1”以生成form:checkbox的ID?
问题内容:
如果我的jsp中有这样的复选框: <form:checkbox path="agreeToLegalAgreements" />
结果是: <input id="agreeToLegalAgreements1" name="agreeToLegalAgreements" type="checkbox" value="true"/><input type="hidden" name="_agreeToLegalAgreements" value="on"/>
为什么在ID后面附加一个“ 1”?我问的原因是因为如果要使用javascript选中此复选框,则必须对“ 1”进行硬编码:
document.getElementById('agreeToLegalAgreements1').checked=true;
问题答案:
这是必要的,因为您可能需要将多个复选框绑定到同一字段,并且每个复选框都需要具有唯一的ID。
例如,如果您的表单对象具有兴趣列表
Programming: <form:checkbox path="interests" value="Programming"/>
Painting: <form:checkbox path="interests" value="Painting"/>
Fishing: <form:checkbox path="interests" value="Fishing"/>
输出将是:
Programming: <input id="interests1" name="interests" type="checkbox" value="Programming"/>
Painting: <input id="interests2" name="interests" type="checkbox" value="Painting"/>
Fishing: <input id="interests3" name="interests" type="checkbox" value="Fishing"/>
(我省略了隐藏的空值输入)