无论是我还是IE,但事实是form.valid()在IE中不起作用(适用于Chrome / Firefox)。我使用以下版本:
我有一个简单的表单,根据需要有一个字段,当我按下提交按钮时,验证将触发,并提示用户输入值,此代码被触发“alert($(this).valid()); ”。用户输入值并单击提交按钮后,我在jquery代码下面运行:
$(function () {
$('form').submit(function () {
alert($(this).valid());
if ($(this).valid()) {
alert('Hello');
}
});
});
问题是没有触发任何警报。我在这做什么错?我检查了验证插件文档,它说它确实支持我正在使用的jquery版本http://jqueryvalidation.org/
jQuery,使用1.6.4,1.7.2,1.8.3,1.9.0进行测试
在开发者工具中,我没有看到任何错误
的 的 *编辑***
此表单有类型文件的输入(用于文件上传)。如果我评论/不显示它的工作原理。所以我想如果你有文件输入你无法禁用提交按钮左右与IE安全性有关。只是我的两分钱!!!
答案 0 :(得分:0)
请尝试使用此代码,它可能更适合IE:
$('form').validate({
submitHandler: function(form) {
// disable submit button here
}
});
答案 1 :(得分:0)
您的代码无法正常运行,因为您的自定义submit
处理程序干扰了插件中已内置的submitHandler
。
http://jqueryvalidation.org/validate/
submitHandler(默认:本机表单提交)
类型:Function()
当表单有效时,回调处理实际提交。获取 形式作为唯一的论点。 替换默认提交。正确 在验证后通过Ajax提交表单。
使用此插件时,您永远不需要编写自己的submit
处理程序。为了提高可靠性,只需使用插件的submitHandler
回调函数。
$(document).ready(function() {
$('#myform').validate({ // initialize the plugin on your form
// rules and/or options,
submitHandler: function(form) {
// this callback function will only fire on a valid form
// disable submit button
// etc.
}
});
});
DEMO :http://jsfiddle.net/zArRK/
请记住,.validate()
是插件的初始化方法,必须在DOM就绪时调用一次。这不是您要求“测试”表单的方法。每当触发某些内置事件时,插件会自动测试表单。您可以致电.valid()
以编程方式测试表单,但不需要.valid
,对于这种情况,您可以通过演示看到。
答案 2 :(得分:0)
当我们公司最终从IE8升级到IE10时,验证功能退出工作。原来我不得不用表格来调用它,而不仅仅是我正在做的ID名称。
不起作用
$( “#tcForm”)。验证({...
两个版本都可以
$( “表”)。验证({...
$( “形式#tcForm”)。验证({...