2010-03-21 4 views
3

내 문제는 다음과 같습니다.ASP.NET MVC 2 Ajax 양식의 클라이언트 유효성 검사 기능

MVC 2.0 프레임 워크의 클라이언트 유효성 검사 기능을 사용하고 있습니다. 나는 간단한 형태로 유효성 검사를 사용할 때

모든 것이 좋다.

그러나 Ajax 양식을 사용하고 Ajax 양식의 필드를 업데이트하면 클라이언트 유효성 검사가 작동하지 않습니다.

아약스 호출 이후에 유효성 검사를 새로 고쳐야하지만 어떻게해야하는지 잘 모릅니다.

아무도 도와 줄 수 있습니까?

+0

1. "는 MVC 2.0 프레임 워크의 클라이언트 검증 기능"은 무엇을 의미합니까? jquery-validate가 마음에 듭니다. 그러나 다른 의미가 있다고 확신합니다. 2. "a ... 언제 클라이언트 인증이 작동하지 않는 아약스 양식의 필드를 업데이트합니까?" 서버에서 필드를 채운 후에 필드를 검증해야합니까? 어쩌면, 유효성 검사는 당신이 ... – Felix

+0

일부 코드 샘플을 도움이 될 것입니다 무엇을하고 있는지 몇 가지 간단한 예입니다? –

답변

0

이 현상은 window.mvcClientValidationMetadata가 jquery 유효성 검사 또는 mvc 클라이언트 유효성 검사 기능과 다른 "범위"를 채우기 때문에 발생합니다. jQuery 유효성 검사를 통해 ajax.begin 양식 앞에 다음 행을 추가하여이를 해결했습니다. 이처럼 : 물론

<div id="result"></div> 

<% Html.EnableClientValidation(); %> 

<% using (Ajax.BeginForm(new AjaxOptions { UpdateTargetId = "result" })) 

// here goes the form 
<input type="submit" value="Create" /> 
<% } %> 

this is the required code that needs to be added: 


<script type="text/javascript"> 


function RefreshClientValidationMetadata() { 
    var allFormOptions = window.mvcClientValidationMetadata; 
    if (allFormOptions) { 
     while (allFormOptions.length > 0) { 
      var thisFormOptions = allFormOptions.pop(); 
      __MVC_EnableClientValidation(thisFormOptions); 
     } 
    } 
} 

RefreshClientValidationMetadata(); 

</script> 

기능 RefreshClientValidationMetadata() 어떤 장소에 추가 할 수 있습니다.

희망이 도움이됩니다.

0

이 시도 :

$(document).ajaxComplete(function() { 
    $.validator.unobtrusive.parse(document);    
}); 
관련 문제