ASP.NET MVC 4.5 OnBlur event TextBox

本文关键字:OnBlur event TextBox NET MVC ASP | 更新日期: 2023-09-27 18:28:26

我有一个C#ASP.net MVC 4.5解决方案。我想创建一个具有自动地址验证功能的表单。如果输入邮政编码和门牌号码,则使用外部REST API查找街道名称en-city。

填写完门牌号码后,必须调用控制器中的函数(使用AJAX)来查找地址、更新模型数据并在表单中显示结果。我不知道如何做到这一点。

我正在考虑做一个表单帖子(使用AJAX),当调用来自门牌号的onBlur时,它被激发了。但这是最好的方式吗?这真的是张贴整个表格的最佳方式吗?

到目前为止的例子:

<div class="col-md-7">
 @Html.TextBoxFor(model => model.HouseNumber, new { @class = "form-control", @placeholder = "HouseNumber" })
 @Html.ValidationMessageFor(model => model.HouseNumber, null, new { @class = "text-danger" })
</div>

当TextBox HouseNumber失去焦点时,我想调用控制器"AddressBook"中的函数"ValidateAddress"。该函数将查找街道名称和城市,并填充模型。街道名称和型号。城市字段。

ASP.NET MVC 4.5 OnBlur event TextBox

好吧,您可以更改控制器操作以返回JSON:模型

public ActionResult ValidateAddress(YourModel model){
  // Do  your validation
  return Json(model); 
}

然后向该操作添加AJAX调用,并在回调中填写表单:

$( "#HouseNumber" ).blur( function() {
  $.ajax({
    url: "/yourActionUrl",
    type: "POST",
    data: $("#yourForm").serialize(),
    dataType: "json"
  }).done(function( model ) {
    $("#Streetname").val(model.Streetname);
    $("#City").val(model.City);
  });
});

您可以在HouseNumber文本框上发生模糊事件

试试这个

@Html.TextBoxFor(model => model.HouseNumber, new { @class = "form-control", @placeholder = "HouseNumber" onblur = "alert('call some javascript function')"})

更好地使用jquery函数

更新:

    $("#HouseNumber").blur(function () {
         $.get("ControllerName/ActionMethod",{parameterName:value},function(data){
// extract values from data object and assign ut to your controls
});
});

使用相同的模型参数在控制器上获取Mathod

public ActionResult Login(LoginData model)
    {
        if (model == null)
        {
            model = new LoginData();
        }
        return View(model);
    }

填充hosno后,如果需要,可以调用函数,然后使用ajax重定向到getmethod并传递模型

对于验证,请使用脚本验证,以便根据您的条件删除或添加。