如何使jQuery验证插件与jQuery微调器一起玩得很好?

时间:2012-05-31 06:19:23

标签: javascript jquery jquery-ui jquery-plugins

所以我使用的是jQuery微调器,我希望它能够通过jQuery验证插件进行验证。微调器的形式为“form”,代码如下所示:

jQuery("#mySpinner").spinner({
    min: 110,
    max: 350,
    step: 10,
    spin: function() {jQuery("form").valid();}
});

jQuery("form").validate({
  rules:{
    mySpinner: {required: true, min: 150, max: 350}
  }
});

我在旋转时调用jQuery(“form”)。valid(),因为当微调器旋转时,验证不会发生。这将是我的问题的结束,但不幸的是验证发生在微调器中的值更改之前。这是场景:

用户输入1111进入微调器。验证在第4个1开始(因为.validate中的最大值设置为350),并让用户知道输入无效。然后用户单击向下箭头。首先,验证触发,并将值标记为无效。接下来,微调器内部的值将更改为最大值(350,来自微调器的“最大”值)。我剩下的是一个被标记为无效的有效值。如果我再次单击微调器,它将使用新值进行验证,并且无效标志将消失。

有人可以告诉我如何在该微调器中的值更改后发生验证检查吗?就此而言,如果有一个更明显和简单的解决方案,你可以把它叫出来吗?

提前致谢!

3 个答案:

答案 0 :(得分:0)

查看来自http://demos.radiantq.com/jQueryGanttDemo/demo.htm的TimeScaleStartAndEnd示例。他们有代码选项卡来查看html代码。希望样本能帮到你。

答案 1 :(得分:0)

通过这样做,我设法在微调器中的值更改之后触发验证

jQuery(".ui-spinner").mouseup(function() {jQuery("form").valid();});

答案 2 :(得分:0)

我认为使用'change'事件而不是'spin'事件可以解决您的问题。即,

jQuery("#mySpinner").spinner({
    min: 110,
    max: 350,
    step: 10,
    change: function() {jQuery("form").valid();}
});