0

我正在使用 jQuery Validation Plugin - 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。只有当按钮被点击?

4

2 回答 2

3

您的代码错误地包装.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 的工作演示,使用 IE 8 1测试:http : //jsfiddle.net/jsDzU/show

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

于 2013-07-29T15:37:58.510 回答
0

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

你可以在这里测试

演示

于 2014-04-11T10:24:12.327 回答