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"。该函数将查找街道名称和城市,并填充模型。街道名称和型号。城市字段。
好吧,您可以更改控制器操作以返回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并传递模型
对于验证,请使用脚本验证,以便根据您的条件删除或添加。