1

ASP.NET CustomValidator를 사용하여 텍스트 필드 (클라이언트 측)의 입력을 확인하는 웹 페이지를 작성했습니다. 텍스트 필드는 JQuery UI Autocomplete를 사용합니다. 여기에서 문제가 발생합니다.ASP CustomValidator가 JQuery 자동 완성으로 변경된 텍스트를 검색하지 않습니다.

유효성 검사기는 정상적으로 작동합니다. 그러나 유효성 검사가 실패하고 사용자가 오류 메시지를 받으면 사용자는 텍스트 필드로 돌아가 자동 완성 플러그인에 의한 드롭 다운을 선택하여 새 값을 입력합니다. 이제 새 값을 선택하고 사용자가 입력 필드를 떠날 때 유효성 검사 코드가 다시 발생하지 않습니다. 그 이유는 자동 완성 헬퍼에서 값이 왔을 때 텍스트가 변경된 것이 감지되지 않기 때문입니다. 말이 돼?

사용자가 필드에서 포커스를 제거 할 때 CustomValidator를 통해 필드의 유효성을 검사 할 수있는 방법을 알고있는 사람이 있습니까?

을 heres 직접 CustomValidator

:

<asp:CustomValidator EnableClientScript="True" runat="server" ControlToValidate="tbInput" 
        ID="inputCustomValidator" ClientValidationFunction="validateFunction" ErrorMessage="Not valid" 
        Display="Dynamic" ValidationGroup="ValidationGrp1" /> 

재미없는 호출되는 자바 스크립트 -가 호출되지 않고 있기 때문이다. 그것이 내가 원하는 것입니다.

답변

2

이렇게하는 방법을 찾았습니다. 자바 스크립트에서 나는 유효성을 검사하고자하는 요소에 blur() 함수를 추가하고 해당 함수를 Page_ClientValidate ('validationGroupName') 트리거로 만들었습니다. 새로운 기능이었습니다.

$('.elementToValidate').blur(function() { 
Page_ClientValidate('ValidationGrp1'); 
}); 
0

이것은 듣고 싶지는 않지만 가능한 jQuery와 ASP.net의 Javascript를 혼합하지 않도록합니다. 멋지게 재생되는 경향이 없습니다.

귀하의 경우 ASP.net 을 덤프하고 jQuery의 Validate plugin으로 전환하는 것이 좋습니다. 그것은 jQuery UI로 훨씬 더 멋지게 재생됩니다.

+0

확실히 내가 듣고 싶었지만, 나는 JQuery와 valida 플러그인을 살펴보고 다시보고 무슨. – AndersDaniel

+0

지금은 사물을 그대로 남기로했습니다. 나중에 다시 돌아올 수도있다. – AndersDaniel

0

또한 autoselect의 select : 핸들러를 사용하여 유효성 검사를 시작할 수 있습니다.

$(".someClass").autocomplete({ 
select: function(event, ui) 
{ 
Page_ClientValidate(ui); 
} 
}); 
0

내 텍스트 상자에 onBlur 이벤트를 설정하여이 작업을 수행 할 수 있습니다.

<asp:TextBox ID="TextBox1" runat="server" onBlur="Page_ClientValidate('ValidationGrp1');"></asp:TextBox> 

(당신 직접 CustomValidator의 ValidationGroup를 가정하는 것은 'ValidationGrp1'이다)

관련 문제