我已经使用jQuery验证为我的表单设置了验证.不幸的是,在某些时候我想调用$(“#clientConfigurationForm”).valid()强制在用户启用/禁用复选框时重新评估.我希望当它们被禁用并且调用.valid()时,忽略当前无效的输入表单(并且失去验证状态).目前这没有发生.我怎样才能让它发挥作用?
复选框事件
$("#clientConfigurationForm").on("change","input[type=checkBox]",function(){
$(this)
.closest("div")
.find("input,select")
.not(this)
.not(":submit")
.prop("disabled",!$(this).prop("checked"))
.each(function(){
$(this).valid();
});
});
验证码
$("#clientConfigurationForm").validate({
onkeyup: function (element) {
$(element).valid();
},focusInvalid: false,invalidHandler: function(form,validator) {
if (!validator.numberOfInvalids())
return;
// Find out what my ID is
var formIndex = $(validator.errorList[0].element).prop("id").replace(/[A-Za-z]+/g,'');
$("#clientSettingsLinks a").eq(formIndex).trigger("click");
},errorPlacement: function (error,element) {
var parent = $(element).parent();
var validationContainer = parent.find(".validationResult");
if (validationContainer.length == 0){
validationContainer = $('
最佳答案
Documentation:类型提交和重置的输入始终被忽略,因此禁用的元素也是如此.
原文链接:https://www.f2er.com/jquery/428234.html然而,你似乎发现了一些奇怪的东西.
这有效
var val;
$("#clientConfigurationForm").on("change",function () {
val.resetForm();
$(this)
.closest("div")
.find("input,!$(this).prop("checked"))
.not(":disabled")
.each(function () {
$(this).valid();
});
});
val = $("#clientConfigurationForm").validate({
onkeyup: function (element) {
$(element).valid();
},submitHandler: function (form) {
alert("submitted");
}
});