Javascript MVC.NET中的Textbox失去焦点事件

Javascript MVC.NET中的Textbox失去焦点事件,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我正在从事一个MVC项目,我对textbox失去焦点事件没有什么问题。 首先我有一个表单,有四个文本框字段,在第一个文本框中,我们需要传递员工的姓名,但我们已调用此文本框失去焦点事件来填充员工的所有记录(如果该记录已存在于数据库中),但当我在文本框中传递姓名并单击“保存”按钮时出现问题,然后调用第一个文本框事件以检查数据库中是否存在记录,然后我需要再次单击按钮以保存我的记录(如果不存在)。 所以在这种情况下,我必须点击按钮两次 请帮助你的想法,我不希望用户点击两次 谢谢我想说的是,您可以使用Jq

我正在从事一个MVC项目,我对textbox失去焦点事件没有什么问题。 首先我有一个表单,有四个文本框字段,在第一个文本框中,我们需要传递员工的姓名,但我们已调用此文本框失去焦点事件来填充员工的所有记录(如果该记录已存在于数据库中),但当我在文本框中传递姓名并单击“保存”按钮时出现问题,然后调用第一个文本框事件以检查数据库中是否存在记录,然后我需要再次单击按钮以保存我的记录(如果不存在)。 所以在这种情况下,我必须点击按钮两次

请帮助你的想法,我不希望用户点击两次


谢谢

我想说的是,您可以使用Jquery ajax来完成这项工作。 当文本框焦点丢失时,将向控制器操作发出ajaxget调用,该操作将检查数据库并返回用户名是否已存在的状态

Jquery:

    $(document).ready(function () {
$("#UserName").focusout(function () {
    var username = $("#UserName").val();
    var fullurl = '/User/UserNameCheck?username=' + username;
    if (username.length > 0) {
        $.ajax({
            url: fullurl,
            type: 'GET',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            //data: username,
            success: function (data) {
                if (data == 'UserNotPresent') {
                    $("#username_NotPresent_lbl").show();
                }
                else if (data == 'UserPresent') {
                    $("#username_Present_lbl").show();
                }
                else {
                    $("#failed_check_lbl").show();
                }
            },
            error: function (e) {
                $("#failed_check_lbl").show();
            }
        });
    }
});

$("#UserName").focus(function () {
    $("#username_NotPresent_lbl").hide();
    $("#username_Present_lbl").hide();
    $('#failed_check_lbl').hide();
}); });
控制器操作:

[AllowAnonymous]
    [HttpGet]
    public JsonResult UserNameCheck(string username)
    {            
        Users loggedInUser = db.Users.FirstOrDefault(x => x.UserName == username);
        if (loggedInUser != null)
        {
            return Json("UserPresent", JsonRequestBehavior.AllowGet);
        }
        else
        {
            return Json("UserNotPresent", JsonRequestBehavior.AllowGet);
        }
    }
视图:


在没有代码可供查看的情况下,您如何期望任何人能够帮助您?MVC是一个服务器端框架,不设置文本框的焦点。这是使用Javascript执行的。我理解John,代码将很简单,正如我前面所说,我调用的是Lost focus事件。我们的开发团队没有什么新的东西要展示……我只是想好好想想,因为我是新来的。
<div class="form-group">
        @Html.LabelFor(model => model.UserName, new {@class = "control-label col-md-2" })
        <div class="col-md-10">
            @Html.EditorFor(model => model.UserName)
            @Html.ValidationMessageFor(model => model.UserName)
            @Html.Label("Sorry this user name is already in use", new {id="username_Present_lbl", @class ="ErrorLbl"})
            @Html.Label("User name available for use", new {id="username_NotPresent_lbl", @class ="SuccesLbl"})
            @Html.Label("Failed to validate the user name", new {id="failed_check_lbl", @class ="FailedCheckLbl"})                
        </div>
    </div>