jQuery Validation插件1.11.1版本在Explorer8中不起作用



我使用的是jQuery验证插件v1.11.1和jQuery 1.10.2,但下面的代码在IE 8中不起作用。它在IE9及以上版本以及Chrome等其他浏览器中运行良好。

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <script src="Scripts/jquery_validate.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $('#btn').click(function() {                 
                $("#form1").validate({                       
                    rules: { 
                        <%= txt.UniqueID %>: "required"
                    },
                    messages: { 
                        <%= txt.UniqueID %>: "Please enter QTY"
                    }                                    
                });
            });
        });     
    </script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    ID
    <asp:TextBox runat="server" ID="txt" ClientIDMode="Static" />
    <asp:Button Text="Test" runat="server" ID="btn" ClientIDMode="Static" />    
</asp:Content>

编辑:

我将validate()封装在$('#brn').Click(function(){})事件中的原因是我有另一个来自GridView RowCommand事件的postBack。是否有其他方法可以仅在单击按钮时调用jquery validate(?

您的代码错误地将.validate()包装在click处理程序中。。。

$('#btn').click(function() {                 
    $("#form1").validate({                       
        ...                             
    });
});

这是错误的,因为.validate()只是插件的初始化方法,所以没有理由将其封装在click处理程序中。提交按钮的click已经被插件自动捕获和处理。

这是使用.validate()方法的正确方法。。。

$(document).ready(function() {
    $("#form1").validate({  // initialize the plugin                 
        // rules & options                          
    });
});

使用jQuery 1.10.2和jQuery Validate 1.11.1运行DEMO,使用IE 81进行测试:http://jsfiddle.net/jsDzU/show

1使用安装在Windows XP SP3中的IE 8的真实版本进行测试。永远不要假设另一个IE版本中的"IE 8模式"是真实事物或"模拟器"的准确表示——事实并非如此。微软提供免费的VPC硬盘镜像,以便在每个IE版本中进行准确测试。

是的,它适用于"jquery-1.4.4.min.js"

你可以在这里测试

演示

相关内容

  • 没有找到相关文章

最新更新