1

我正在使用带有 daterangepicker 的 jquery 验证。我在尝试选择日期时遇到问题。当我第一次选择它时,它不显示“Hello”,但第二次显示“Hello”,我真正想要做的是在单击下一步按钮时验证该字段。我该如何避免在我选择一个日期时执行“checkDate”以便在我单击下一步按钮时对其进行验证?

在这里你可以看到我的代码:

$("#form_step1").validate({
    rules: {
        titulo: {
          required: true,
          maxlength: 300
        },
        reservationtime1:  {
          required: true,
          checkDate: true
        }
    },
    messages: {
        titulo: "At least 300 characters",
        reservationtime1: "You must pick up a valid date"
    },
    highlight: function(element) {
        $(element).closest('.form-group').addClass('has-error');
    },
    unhighlight: function(element) {
        $(element).closest('.form-group').removeClass('has-error');
    }    
});  
jQuery.validator.addMethod("checkDate", function(value, element) { 
// My custom validation
alert("Hello");
});

http://jsfiddle.net/B79z7/2/

谢谢

4

2 回答 2

0

尝试添加onfocusout:false,到您的验证选项。

$("#form_step1").validate({
    onfocusout:false,
    rules: {
        titulo: {
          required: true,
          maxlength: 300
        },
        reservationtime1:  {
          required: true,
          checkDate: true
        }
    },
    //....
});

这似乎将调用限制CheckDate为仅在单击“下一步”按钮时:http: //jsfiddle.net/ryleyb/B79z7/7/

于 2014-03-07T17:53:45.100 回答
0

如果要使其工作,则在更新输入元素上的值之前,表单验证将不起作用,为日期范围输入提供一些默认值。

演示

  <input type="text" value="Enter the date " name="reservationtime1" id="reservationtime1" 
                        class="form-control" readonly="readonly"/>

更新:对不起,我误解了这个问题,如果是这种情况,那么将 validate() 移动到 #next.click 方法中,因为 #next 是一个锚点并且没有提交按钮,因此调用了应用按钮单击表单验证方法。

演示 2

于 2014-03-07T04:42:25.967 回答