2012-03-10 3 views
0

검증에 나는 다음과 같이 드롭 다운 목록을 검증하기 위해 jQuery를 유효성 검사를 사용하고 여기JQuery와 검증 이상한 행동 드롭 다운 목록

$.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> 

I 버튼을을 제출하고 그 클릭에 나는 형태 return $("#form1").valid();

,536에게 확인

이제 Chrome과 Firefox에서는 모두 정상적으로 작동하지만 IE9에서는 매우 이상한 동작을 보입니다. 유효성 검사 전에 유효성을 검사 한 후 드롭 다운이 잘 작동합니다. 드롭 다운을 열려고하면 즉시 닫힙니다.

+0

이것을 파악한 적이 있습니까? 나는 IE9에서 같은 행동을보고있다. –

+0

페이지 HTML 마크 업에 누락 된 닫는 태그가 있습니다. 한번 수정하면 모든 것이 잘됩니다. –

답변

3

유효성 검사 옵션에 onclick: false을 추가

예를 들어,

$(".selector").validate({ 
    onclick: false 
}) 

이것은 나를 위해 일했습니다.

0

강조 기능의 요소에서 addClass()를 호출 할 때 동일한 문제가 발생합니다. 귀하의 문제는 toggleClass() 함수와도 관련이 있다고 생각합니다. toggleClass()에 대한 호출을 제거하고 여전히 발생하는지 확인합니다.