Когда вы проверите ваш источник HTML, вы обнаружите, что атрибуты id
были изменены. Спецификации HTML требуют, чтобы идентификаторы были уникальными, поэтому JSF изменяет имена.
В вашем блоке скрипта вам нужно хранить их в переменных, а не использовать их буквально.
Вы уже сделали это для формы. Сделайте это и для полей.
Обновление
Ваш код, вероятно, должен выглядеть следующим образом (внутри CDATA):
XSP.addOnLoad( function() {
// You might need one more #
$('#{id:maskForm}').bootstrapValidator({
message: 'This value is not valid',
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
'#{id:ipAddress}': {
message: 'The username is not valid',
validators: {
notEmpty: {
message: 'The username is required and can\'t be empty'
},
stringLength: {
min: 6,
max: 30,
message: 'The username must be more than 6 and less than 30 characters long'
},
regexp: {
regexp: /^[a-zA-Z0-9_\.]+$/,
message: 'The username can only consist of alphabetical, number, dot and underscore'
}
}
} } }) });
<pre><code> ]]>
Единственное поле в вашем фрагменте - ipAddress
- это то, что используются в моих примерах.
Хитрость здесь: замените статические идентификаторы на язык выражений XPages, который дает фактический идентификатор. Ваш скрипт-блок обрабатывает выражения перед отправкой данных в браузер. Браузер получает данные, не зная, что они были предварительно обработаны.
Так что, если у вас есть <input id="Color" />
, вы используете #{id:Color}
, чтобы получить фактический идентификатор.
Однако вы можете пересмотреть свой подход. XPages имеет отличные валидаторы, которые хранятся с полем и предлагают большую часть того, что вы ищете. Подтвердите правильность проверки, и вам постоянно нужно менять код при изменении полей. Держите поля и проверки вместе!