JQuery 验证奇怪的自定义方法错误

标签 jquery jquery-validate jquery-ui-datepicker

我的 JQuery Validate 和自定义方法有一个奇怪的错误。由于某种原因,每次字段更改时,验证方法都会触发 3-4 次。由于某种原因它正在循环,我不知道为什么。验证器工作了。唯一的问题是它不能与日期选择器一起使用。我必须在日期选择器中单击两次才能更改输入中的值。看起来 jquery validate 正在劫持日期选择器输入,或者其他什么。我现在一无所知,会考虑任何想法。

自定义方法:

$(document).ready(function () {

    $.validator.addMethod("laterDate", function(value, element) {   
       var id = "#" + element.id;
       var id_number = element.value.charAt(element.length - 1);
            alert(id_number);
       if(id_number == "1"){
            alert("in if")
            var id_value = $(id).fieldDate();
            var today = new Date();
                alert(id_value > today);
                return id_value > today;
      }
        else{
        alert("in else")
        var prev_id_number = String(parseInt(id_number) - 1);
        var prev_id = "#end_date_" + prev_id_number;
        var prev_id_value = $(prev_id).fieldDate();
        var id_value = $(id).fieldDate();
        return id_value > prev_id_value;
      }

    }, $.format("Enter a later date"));
});

验证器代码是:

$(document).ready(function () {
    $("#rate_new_new").validate({
        debug: true,

rules: {
                "rates[start_date_1]": {dateITA: true, maxlength: 50},
                "rates[end_date_1]": {dateITA: true, maxlength: 50, laterDate: true},
                "rates[price_1]": {testPrice: true}
                },
    messages: {

        "rates[start_date_1]": {
            dateITA: "Please enter a valid date",
            maxlength: "The name must be less than 50 characters"

        }
    },      

    submitHandler: function(form) {

                $(form).ajaxSubmit({

                        success: function(){
                          $('#lefttabs li:eq(4) a').tab('show');
                                            }
                                  });


                                  }
 });
 });

最佳答案

你使用JqueryUIDatePicker吗?

那么,试试这个:

$('#yourid').datepicker({
    onSelect: function(dateText, inst) {
        $(this).blur();
    }
});

关于JQuery 验证奇怪的自定义方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888321/

相关文章:

javascript - 将单词部分的所有实例设为斜体

jQuery 验证插件条件必填字段

javascript - 如何使用 jQuery UI datepicker.format

javascript - 使用 jQuery Datepicker 的英国夏令时(计算丢失 1 天)

jquery - 在 Jade 模板中使用 jQuery Validation 进行表单验证

jquery - ipad网络应用程序: How do I prevent the keyboard from popping up on jquery datepicker

jquery - Masonry v3.0.4 调整大小

javascript - 如何在不显示 html 标记的情况下过滤和标记输入中的单词?

javascript - 带有 html 内容的工具提示出现在右侧,有工作代码,但它仅适用于 1 个提示,我希望它是动态的

javascript - 通过jquery设置值