【问题标题】:Jquery validate exception - Uncaught TypeError: Cannot call method 'call' of undefinedJquery 验证异常 - 未捕获的 TypeError:无法调用未定义的方法“调用”
【发布时间】:2013-10-11 17:08:57
【问题描述】:

非常简单的要求,验证字段是否为正数。

请参考js小提琴

http://jsfiddle.net/DJMmm/5/

HTML 代码

<form id="new_leavetype_form" action = "<%=path %>/admin/create.go">

     <input name="default_days" id="default_days_id" type="text"  />      
     <button id="submit_button" type="button">Submit</button>

</form>

JS 代码

$().ready(function(){
    $("#new_leavetype_form").validate({
        rules:{
            default_days: { number: true, required:true, PositiveNumber:true }
        }
    });

    $("#submit_button").click(function(){
        $("#new_leavetype_form").submit();
    });

})

问题

如果将'abc'之类的字母填充到字段中,而字段失去焦点,则验证被正确触发,但是如果输入是数字将导致异常:'Cannot call method 'call' of undefined '

我真的不知道是什么导致了这个异常,请帮忙,谢谢。

【问题讨论】:

  • 你还没有定义PositiveNumber验证方法。
  • 没有规则说PositiveNumber
  • 这不是默认方法吗?
  • 顺便说一句,您只需将 button 更改为 type="submit" 即可摆脱整个 .click() 处理程序函数。见:jsfiddle.net/3tuzK
  • @Sparky 超人,非常感谢

标签: jquery jquery-validate


【解决方案1】:

没有名称为 PositiveNumber 的验证规则。

要么你需要创建一个新规则,要么你可以设置最小规则来实现 dame

$("#new_leavetype_form").validate({
    rules: {
        default_days: {
            number: true,
            required: true,
            min: 0
        }
    }
});

演示:Fiddle

【讨论】:

  • jquery validate 需要在错误信息中说明缺少的规则名称。
猜你喜欢
  • 1970-01-01
  • 2012-08-27
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多