Есть форма вопроса, подтвержденная Validation Plugin . В нем много полей с флажками и радиокнопками, и я хочу, чтобы они проверялись после нажатия на ссылку с href = "# checkbox-id".
...
<label class="answer-label" for="answer-2">
<input id="option-2.1" class="answer" type="radio" name="answer-2" value="Yes"/>
<a href="#option-2.1">Yes</a>
</label>
...
Javascript:
$("label.answer-label a").bind("click", function(event) {
event.preventDefault();
var target = $(this).attr("href").replace(".", "\\.");
$(target).click();
} );
Вот настройка плагина проверки:
$("form#feedback")
.validate({ submitHandler : function ( form ) {
form.submit();
},
errorClass: "invalid",
focusInvalid : false,
debug : true,
invalidHandler : function ( form, validator ) {
var destination = validator.errorList[0].element;
$("html, body").animate({ scrollTop : $(destination).offset().top - 100 });
$(destination).focus();
},
highlight : function ( element, errorClass, validClass ) {
if ( $(element).parents(".name-company") ) {
$(element)
.removeClass(validClass)
.addClass(errorClass);
}
// if ( $(element).parents(".question") ) {
$(element)
.parents(".question")
.removeClass(validClass)
.addClass(errorClass);
// }
},
unhighlight : function ( element, errorClass, validClass ) {
if ( $(element).parents(".name-company") ) {
$(element)
.removeClass(errorClass)
.addClass(validClass);
}
// if ( $(element).parents(".question") ) {
$(element)
.parents(".question")
.removeClass(errorClass)
.addClass(validClass);
// }
},
errorPlacement : function () {
return false;
}
});
Проблема в том, что: нажатие на метку проверяет элемент ввода, но события проверки запускаются только после второго щелчка.