我使用的是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"
你可以在这里测试
演示