Почему Spring MVC добавляет «1» к пути для создания идентификатора формы: флажок? - PullRequest
6 голосов
/ 10 января 2010

Если у меня есть флажок, как это в моем JSP: <form:checkbox path="agreeToLegalAgreements" />

Это приводит к: <input id="agreeToLegalAgreements1" name="agreeToLegalAgreements" type="checkbox" value="true"/><input type="hidden" name="_agreeToLegalAgreements" value="on"/>

Почему "1" добавляется к идентификатору? Причина, по которой я спрашиваю, заключается в том, что я должен жестко закодировать «1», если я хочу установить этот флажок, используя JavaScript: document.getElementById('agreeToLegalAgreements1').checked=true;

Ответы [ 2 ]

8 голосов
/ 13 января 2010

Это необходимо, поскольку вам может потребоваться привязать несколько флажков к одному и тому же полю, и каждому из них потребуется уникальный идентификатор.

Например, если у вашего объекта формы есть список интересов

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"/>

(я пропустил скрытый ввод пустого значения)

5 голосов
/ 12 февраля 2013

Донал правильный, но вы все равно можете установить ID на флажок, если хотите.

<label>
  <form:checkbox id="searchInSubject" path="searchInSubject"/>Subject
</label>

Тогда вы можете использовать JavaScript так, как вы ожидаете.

if( $('#searchInSubject').prop("checked") ) {
  alert('checked');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...