我正在使用jQuery验证来验证下拉列表,如下所示:
这里是javascript部分:
$.ready(function(){
$.validator.addMethod("dropdown", function (value, element) { return validateDropDowns(this, value, element); });
$('#form1').validate({
onsubmit: false,
focusInvalid: true,
highlight: function (element, errorClass, validClass) {
$(element).toggleClass('invalid');
$(element.form).find("label[for=" + element.id + "]").toggleClass(errorClass);
},
unhighlight: function (element, errorClass, validClass) {
$(element).toggleClass('invalid');
$(element.form).find("label[for=" + element.id + "]").toggleClass(errorClass);
}
});
});
function validateDropDowns(objContext, value, element) {
return objContext.optional(element) || value != "-1";
}
这是标记部分:
<asp:DropDownList runat="server" ID="cmbGender" ClientIDMode="Static" meta:resourcekey="cmbGenderResource1">
<asp:ListItem Selected="True" Value="-1" Text="please select gender" meta:resourcekey="ListItemResource1"></asp:ListItem>
<asp:ListItem Value="1" Text="male" meta:resourcekey="ListItemResource2"></asp:ListItem>
<asp:ListItem Value="2" Text="female" meta:resourcekey="ListItemResource3"></asp:ListItem>
</asp:DropDownList>
我有一个提交按钮,点击后我会验证表单return $("#form1").valid();
现在一切都在Chrome和Firefox中运行良好但在IE9中我得到了一个非常奇怪的行为;在验证之前和验证之后,下拉列表工作正常。当您尝试打开下拉列表时,它会立即关闭。
答案 0 :(得分:3)
在验证选项中添加onclick: false
:
e.g。
$(".selector").validate({
onclick: false
})
这对我有用。
答案 1 :(得分:0)
在高亮显示功能的元素上调用addClass()时遇到同样的问题。我认为您的问题也与toggleClass()函数有关。删除对toggleClass()的调用,看看它是否仍然存在。