2012-10-31 2 views
0

양식에 username 용 텍스트 상자가 있는데 사용자가 사용자 이름을 입력하면 해당 사용자 이름이 이미 데이터베이스에 있는지 확인해야합니다. 텍스트 상자 &의 블러 이벤트를 잡아서 & 쿼리에 자바 스크립트 기능을 쓰려고 생각하고 있습니다. 저는 다음과 같은 것을 시도하고 있습니다 :mvc 3의 고유 속성을 확인하는 방법은 무엇입니까?

@html.textboxfor(x=>x.UserName, new{@id="UserName"}) 

<script type="text/javascript"> 
$(document).ready(function(){$('#UserName').blur("then some code here");}) 

</script> 

이제 올바른 방법을 따르고 있는지 알아야합니까? 그렇다면 어떻게 저를 알려주세요. 나는 블러 기능 내에서 데이터베이스와 상호 작용할 수있는 액션 메소드를 호출 할 수 있습니까? 미리 감사드립니다.

답변

0

네, 맞아요. Url.Action 도우미 메서드와 함께 JQuery Ajax 호출을 사용할 수 있습니다.

$(document).ready(function(){ 
    $('#UserName').blur(function() { 
     var name = this.value; 
     $.get(@Url.Action("VerifyUsername") + "?name=" + value, function(result) { 
      if (result.ok == false) { 
       $("#message").text("Username '" + name + "' is already taken, please try another"); 
      } 
     }); 
    }); 
}); 

이 전류 제어기의 동작 VerifyUsername을 호출한다. 이 작업은 이름 확인 {ok:true} 같은 JSON을 반환한다고 가정 : 당신이 MVC3에서 원격 유효성 검사를 사용할 수 있습니다

public ActionResult VerifyUsername(string name) 
{ 
    bool isOk; 
    // check the database 
    return new JsonResult() { 
     Data = new { ok: isOk }, 
     JsonRequestBehavior = JsonRequestBehavior.AllowGet 
    }; 
} 
관련 문제