form.valid()无法在IE中使用jquery验证插件1.11

时间:2013-08-01 16:50:34

标签: jquery internet-explorer jquery-validate

无论是我还是IE,但事实是form.valid()在IE中不起作用(适用于Chrome / Firefox)。我使用以下版本:

  • jquery 1.8.3
  • 验证插件1.11.1

我有一个简单的表单,根据需要有一个字段,当我按下提交按钮时,验证将触发,并提示用户输入值,此代码被触发“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安全性有关。只是我的两分钱!!!

3 个答案:

答案 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”)。验证({...