带有jQuery验证的引导表单不起作用,在jQuery中抛出未定义的函数错误
我一直在引导页面上进行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
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
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);
}
}