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;
}
});
問題があります2回目のクリック。
'.blur()'や '.change()'のどちらも機能しませんでした。リンクは、最初の記事で説明したように動作します。 –
私は目的の動作を達成する方法を見出しました。 '.change'イベントをバインドした後(上の私の答えを見てください)、あなたのコードが動作し始めました。 –