Javascript Live Validation: onchange срабатывает только в первый раз
У меня есть форма с полем выбора и полем ввода: когда значение параметра выбора равно "8", у меня будет это поле ввода должно быть меньше 250
ВЫБЕРИТЕ ЯЩИК
<select id="select_5" size="1" title="Effettua una scelta!" name="tipo_nolavorazioni" onChange="updatethis(this.form);">
<option value="8"> A </option>
<option value="1"> B</option>
<option value="2"> C</option>
<option value="3"> D </option>
</select>
ПОЛЕ ВВОДА
<input class="required validate-number" maxlength="150" size="5" id="text_2" name="base" type="text" onChange="updatethis(this.form);" value="" />
<p id="errore_base"></p>
В файл JS я добавил это:
function updatethis(form) {
if (tipo1==8) {
window.addEvent('domready', function(){
var valid = new LiveValidation('text_2', {insertAfterWhatNode : "errore_base"});
valid.add(Validate.Numericality, { maximum: 250, tooHighMessage: "Max 250cm" });
});
}
}
Это работает, но если я изменяю значение параметра (например, B=1).. сообщение об ошибке остается, и я не могу обработать свою форму. Где я не прав?
1 ответ
Решение
Это работает? Я никогда не использовал LiveValidation
библиотека, но после просмотра API, я думаю, это будет работать. Вам нужно сохранить ссылку на валидатор где-то за пределами функции (в более широком контексте) и использовать add
а также remove
методы управления пользовательским интерфейсом.
Для получения дополнительной информации смотрите: http://livevalidation.com/documentation
var validator = new LiveValidation('text_2', {insertAfterWhatNode : "errore_base"})
function updatethis(form) {
var action = 'remove';
if (tipo1 == 8) {
action = 'add';
}
window.addEvent('domready', function(){
validator.add(Validate.Numericality, { maximum: 250, tooHighMessage: "Max 250cm" });
});
}