我正在使用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')中的原因。单击(function(){})事件是我有另一个来自GridView RowCommand Event的postBack.Is还有另一种方法来调用jquery validate()只有在点击按钮时?
答案 0 :(得分: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运行DEMO,使用IE 8 1进行测试 :http://jsfiddle.net/jsDzU/show
1 使用Windows XP SP3中安装的实际版本的IE 8进行测试。永远不要认为另一个IE版本中的“IE 8 Mode”是真实物体或“模拟器”的准确表示 - 事实并非如此。 Microsoft provides free VPC hard drive images for accurate testing in each IE version
答案 1 :(得分:0)