0

フォームにユーザー名のテキストボックスがあります。ユーザーがユーザー名を入力すると、そのユーザー名が既にデータベースにあるかどうかを確認する必要があります。テキストボックスのぼかしイベントをキャッチし、データベースを照会してチェックインするjavascript関数を作成することを考えています。私はこのようなことを試みています:

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

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

</script>

今、私は正しい方法に従っているかどうかを知る必要がありますか? もしそうなら、blur関数内でデータベースとやり取りするアクションメソッドを呼び出す方法、または正しい方法を教えてください。前もって感謝します。

4

2 に答える 2

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 を返すことを前提としています。

public ActionResult VerifyUsername(string name)
{
    bool isOk;
    // check the database
    return new JsonResult() {
        Data = new { ok: isOk },
        JsonRequestBehavior = JsonRequestBehavior.AllowGet
    };
}
于 2012-10-31T04:49:01.097 に答える
0

MVC3 http://msdn.microsoft.com/en-us/library/gg508808(v=vs.98).aspxでリモート検証を使用できます

于 2012-10-31T04:50:00.110 に答える