我怎样才能让typeahead.js与jquery.validate玩得很好
How can I get typeahead.js to play nicely with jquery.validate?
我有一个ASP.NET MVC 5网站,它使用jQuery验证(MVC项目模板中的jquery.validate.js
)。我正试图使用typeahead.js
在表单中的一个输入字段上实现类型先行功能。
因为提交表单会发出AJAX请求,所以表单提交事件被捕获如下:
$form.on("submit", function (e) {
if (!$form.valid()) {
return false;
}
... do stuff ...
请注意,这里发生的第一件事是检查表单是否有任何验证错误,正如jQuery验证库检测到的那样。
如果我不使用typeahead
,那么一切都很好。我可以在表单中输入值并提交,一切都很好。
然而,只要我完成以下操作,就可以为我的输入添加预编型功能:
$("#myInput").typeahead({
minLength: 1,
highlight: true
},
{
source: mySource
});
则我不能再提交表单。我的表单被认为无效:$form.valid()
返回false
。
我认为typeahead.js
库在表单中添加了一些额外的元素(包括隐藏的输入),这会混淆jquery.validate.js
库。
使用Chrome F12,似乎有一个输入看起来像原始输入的副本,遗憾的是,该副本似乎已经复制,因此它还具有所有jQuery验证属性的副本。
我该如何解决这个问题?
这似乎有效(位于对typeahead()
:的调用之后
$("input.tt-hint").removeAttr("data-val data-val-required data-val-maxlength data-val-maxlength-max");
额外的输入上似乎有tt-hint
类,因此您可以设置validate以忽略该类的输入。
$form.validate({
ignore: ':hidden, .tt-hint'
});
相关文章:
- jquery validate 1.8.1”;jQuery"是未定义的错误IE8
- jQuery validate函数不起作用
- jQuery Validate不适用于自定义单选按钮
- Jquery Validate with Coffeescript
- 如何在不提交表单的情况下使用jQuery.validate
- 有条件地创建ajax url参数以与jQuery Validate一起使用
- jQuery Validate - Url Validation
- jQuery.Validate - 如何将错误结果放在不同的地方
- 在应用 jQuery.Selected 时,使用 jQuery.Validate 来验证选择字段时,暴露错误
- 如何使用 jquery.validate with requirejs.
- jQuery Validate-Fire自定义'addMethod'聚焦/按键
- jquery validate-根据条件切换字段集(带有嵌套的必需字段)
- 防止使用jQuery.validate()验证隐藏/禁用字段
- 在附加方法jquery validate中为特殊字符使用regex
- 无法中断jquery.validate回调
- 正在尝试使用.submit在表单提交上激发jquery validate
- jQuery Validate-验证字符串的内容
- Jquery validate:如何验证一组文本框中是否有值
- jQuery Validate 不显示任何消息
- 在jquery.validate()验证表单之前触发函数