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