当其他浏览器进行验证时,是什么导致 IE 无法验证(jquery)
我有一个使用 jQuery 1.7 和 jQuery 验证 1.9 的表单(在本文发布时都是最新的),它适用于 firefox / chrome / safari,但仅部分适用于 IE(至少 8.0,尚未测试其他版本) - - 不确定这笔交易是什么。 这里有一个例子: http://jsfiddle.net/bulbous/hZn5A/100/
如果您单击测试,您看到文本输入控件在所有浏览器中都经过验证,但下拉列表在 ie 中未经过验证(但在所有其他浏览器中均经过验证)。 我还包含了下面示例的完整 html:
<head>
<script src="jquery-1.7.js" type="text/javascript"></script>
<script src="jquery.validate-1.9.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
jQuery.validator.addMethod("notEqual", function(value, element, param) {
return this.optional(element) || value != param;
}, "Please choose some value!");
$('#myForm').validate({
rules: {
text: {
required: true
},
category: {
required: true,
notEqual: "---"
}
},
messages: {
text: {
required: "Text required"
},
category: {
required: "Category required"
}
}
});
});
</script>
<form id="myForm">
<select id="category" name="category">
<option>---</option>
<option>Category 1</option>
<option>Category 2</option>
<option>Category 3</option>
</select>
<input type="text" id="text" name="text" />
<input type="submit" value="Test" />
</form
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果您给
标记显式的“value”属性,它就会起作用。
我不清楚为什么它在 IE7 中失败但在 IE8 中却失败。
If you give the
<option>
tags explicit "value" attributes, it works.It's not clear to me why it fails in IE7 but not IE8.
似乎是验证器错误。但作为解决方法,您可以考虑选择元素并获取值。请参阅此,在 IE7 上运行:
Seems to be a validator bug. But as a work around, you may consider select the element and get the value. See this, working on IE7:
这是因为你的选择都没有价值。
It's because none of your options have values.
您的
id
和name
使用“text”一词。“文本”一词并不是专门“保留”,但它是“最好避免使用的词”之一...
http://www.kourbatov.com/faq/reserved.htm
此外,验证插件仅经过测试至 jQuery 版本 1.6.1
只需降级您的 jQuery 版本排除 jQuery 1.7 的问题
You're using the word "text" for your
id
andname
.The word "text" is not specifically "reserved" but it's one of those "words best to avoid"...
http://www.kourbatov.com/faq/reserved.htm
Also, the Validation plugin has only been tested up to jQuery version 1.6.1
Downgrade your jQuery version just to rule out an issue with jQuery 1.7
猜猜这应该有用
guess this should work