javascript – jQuery验证验证禁用的输入字段

前端之家收集整理的这篇文章主要介绍了javascript – jQuery验证验证禁用的输入字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我已经使用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 = $('
@H_403_20@最佳答案
Documentation:类型提交和重置的输入始终被忽略,因此禁用的元素也是如此.

然而,你似乎发现了一些奇怪的东西.

这有效

Live Demo

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");
    }
});

猜你在找的jQuery相关文章