有一個由Validation Plugin驗證的問題表單。它有很多帶有複選框和單選按鈕的字段,我希望在用href =「#checkbox-id」單擊鏈接後檢查它們。元素不會對jQuery事件做出反應
...
<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;
}
});
的問題是:點擊標籤上檢查輸入的元素,但驗證事件觸發後,才第二次點擊。
'.blur()'和'.change()'都沒有工作。鏈接仍然像我在初始文章中描述的那樣行事。 – 2012-02-24 07:31:49
我找到了一種方法來實現所需的行爲。綁定'.change'事件後(請參閱上面的答案),您的代碼開始工作。 – 2012-02-24 12:04:05