带有jQuery验证的引导表单不起作用,在jQuery中抛出未定义的函数错误

带有jQuery验证的引导表单不起作用,在jQuery中抛出未定义的函数错误,jquery,twitter-bootstrap,jquery-validate,undefined-function,Jquery,Twitter Bootstrap,Jquery Validate,Undefined Function,我一直在引导页面上进行jQuery验证。我用jQuery验证器将我的字段绑定在一个引导样式的页面上,并将onfocusout设置为true,以便获得即时反馈。但是我得到了一个javascript错误: Uncaught TypeError: undefined is not a function jquery.validate.min.js:2 e jquery.validate.min.js:2 (anonymous function) jquery.validate.min.js:2 m.e

我一直在引导页面上进行jQuery验证。我用jQuery验证器将我的字段绑定在一个引导样式的页面上,并将
onfocusout
设置为true,以便获得即时反馈。但是我得到了一个javascript错误:

Uncaught TypeError: undefined is not a function jquery.validate.min.js:2
e jquery.validate.min.js:2
(anonymous function) jquery.validate.min.js:2
m.event.dispatch jquery-1.11.1.min.js:3
r.handle jquery-1.11.1.min.js:3
m.event.trigger jquery-1.11.1.min.js:3
m.event.simulate jquery-1.11.1.min.js:3
c jquery-1.11.1.min.js:3
HTML

<div class=container-fluid>
    <form id=withdraw_form class=form-horizontal role=form>
        <div class="wf-section account-details">
            <h4 class=title>Details</h4>
            <div class="form-group">
                <label class="col-xs-5 col-md-4 control-label ">Amount</label>
                <div class="col-xs-4 col-md-5 remove-side-paddings">
                    <input type=text class="form-control" id=amount name=amount />
                </div>
                <div class="col-xs-2 col-md-2 " style="padding-left: 5px;"><span>eg. 99.99</span></div>
            </div>
        </div>

        <div class="wf-section delivery-address">
            <h4 class=title>Contact</h4>
            <div class="form-group">
                <label class="col-xs-5 col-md-4 control-label ">Phone</label>
                <div class="col-xs-4 col-md-5 remove-side-paddings">
                    <input type=text class="form-control" id=phone name=phone />
                </div>
            </div>
        </div>

        <div class="action-area">
            <input type=submit id=withdraw class="btn btn-primary" value="Submit">
            <input type=button id=cancel class="btn btn-primary" value="Cancel">
        </div>
    </form>
</div>
请查找非工作样本

另一个奇怪的事情是(假设我将
onfocusout
设置为false),直接提交一个或多个字段,但所有字段都无效,它不会抛出错误。表单提交成功

实际上,这个错误是在jQuery中抛出的。我尝试了文件的未统一版本,但找不到任何有用的东西

请帮助我理解我做错了什么。非常感谢你的帮助

谢谢
Vivek Ragunahan

我想我成功了。我只是愚蠢地没有看到验证器phoneUS(在验证器设置中使用)是脚本文件的一部分,而不是jQuery本身。它现在似乎起作用了

谢谢
Vivek Ragunahan

引用作品:

“我已将
onfocusout
设置为
true
,以便获得即时反馈。但我收到一个javascript错误:”

。。。另一件奇怪的事情是(假设我将onfocusout设置为false),直接提交一个或多个字段,但所有字段都无效,它不会抛出错误。表单提交成功

true
不是此选项的有效值,如您所见,在某些情况下可能会中断插件
onfocusout
已经是默认行为,因此只需将此选项忽略。
如果要禁用它(
false
)或使用超越功能,只需设置
onfocusout

请参阅文档:

onfocusout
类型:布尔或函数() 验证元素(除 模糊上的复选框/单选按钮)。如果未输入任何内容,则所有规则 跳过,除非该字段已标记为无效。设置 函数,以自行决定何时运行验证

布尔真值不是有效值。


默认情况下,
onfocusout
在提交按钮第一次触发整个表单的验证之前不会执行任何操作。如果您希望
onfocusout
立即工作,请使用类似于以下内容的功能

onfocusout: function (element) {
    this.element(element);
}
或者保留默认行为以忽略
无线电
复选框
元素

onfocusout: function (element) {
    if (!this.checkable(element)) {
        this.element(element);
    }
}

这意味着为了保持“默认”行为,根本不能声明
onfocusout
选项

这是你仅有的三个选择

  • 默认值行为->您不能将其设置为
    true
    。只需省去
    onfocusout
    选项即可

  • 禁用“启用模糊”验证->将
    onfocusout
    设置为
    false

  • 超车模糊验证->设置
    onfocusout
    功能


请不要用图片代替错误信息或代码。它阻止此网站的搜索功能查找此内容。另外,不要期望我们下载您的文件。。。。请发布足够的代码,为您的问题构建一个合适的演示:@Sparky,当然可以。我希望主观性是有用的,有助于在搜索中被抓住。但我同意你的建议。作为一名杰出的jqueryvalidate专家,我希望您能看到,在大多数情况下,如果用户对问题了如指掌,他们不会要求解决方案。当我遇到这个问题时,我必须了解“其他方法”。所以现在我知道我应该找什么了。我认为这可能对其他面临类似问题的人有所帮助。您认为我应该如何编辑以保存此问题?我想我已经尽了我最大的努力,只需诚实地遵守本网站的发布指南和习惯。我觉得你最近的编辑很好。没有简单的方法可以知道一个方法是否需要
additional methods.js
文件。最安全的方法是要么查看文件内部,要么一直包含它。您还可以在GitHub上发布帖子,很好地要求开发人员更新文档,以说明哪些方法需要此附加文件。谢谢。我遵循了onfocusout的函数值,但将使用true,这是默认值和预期行为。@Vivekragunahan,如果您使用的是
true
,那么您误读了我的整个答案。通过将其设置为
true
,您实际上超越了默认行为。您不应该使用
true
,因为根据开发人员的官方文档,“
true
不是有效值”。要使用
onfocusout
的默认和预期行为,必须在
.validate()
中保留该选项。再读一遍:我的错,我读对了,但打错了。我的意思是假(默认)。感谢您的更正。@vivekragunahan,
false
也不是默认值
false
将完全禁用此选项。要获得“默认”行为,根本不能声明
onfocusout
选项。查看我的编辑。
onfocusout: function (element) {
    if (!this.checkable(element)) {
        this.element(element);
    }
}