[英]How I do bind data to DisplayFor from event blur on asp.net mvc
我正在使用事件模糊功能來失去對文本框的關注。 但是我僅將數據綁定到textboxfor,而不能將數據綁定到labelfor或displayfor。 我能怎么做 ?
我的Java腳本:
$('#PGId').blur(function () {
var errormsg = "";
var id = $('#PGId').val();
$.ajax({
type: "GET",
url: '@Url.Action("GetDetailPG", "TimeSheetHeader")',
data: { pgId: id },
dataType: "json",
success: function (data) {
$("#FirstName").val(data.FisrtName)
$("#LastName").val(data.LastName)
$("#Shiff").val(data.ShiffId)
},
error: function (jqXHR, exception) {
$('#error').html("Primitive Functions not allowed.")
}
});
})
我的剃刀視圖:
<div class="col-md-3 form-group">
@Html.LabelFor(model => model.PGId) <em>( * )</em>
@Html.TextBoxFor(model => model.PGId, new { @class = "form-control input-sm", @name = "normal" })
@Html.DisplayFor(model => model.FirstName) @Html.DisplayFor(model => model.LastName)
</div>
<div class="col-md-3 form-group">
@Html.LabelFor(model => model.Shiff)
<div>
<label class="radio-inline">
@Html.RadioButtonFor(model => model.Shiff, "M") Morning
</label>
<label class="radio-inline">
@Html.RadioButtonFor(model => model.Shiff, "N") Night
</label>
</div>
<span style="color:red" class="help-block">@Html.ValidationMessageFor(model => model.Shiff)</span>
</div>
@Html.DisplayFor()
不會生成具有id
屬性的元素,也不會生成具有value
屬性的控件,因此您不能使用$("#FirstName").val(data.FirstName)
。 而是創建一個具有所需id
的容器元素,並在ajax調用中更新其內容(不確定ShiffId
是什么-您沒有為此顯示任何html)
@Html.TextBoxFor(m => m.PGId, new { @class = "form-control input-sm" })
<div id="firstname">@Html.DisplayFor(m => m.FirstName)</div>
<div id="lastname">@Html.DisplayFor(m => m.LastName)</div>
然后在腳本中
success: function (data) {
$("#firstname").text(data.FirstName)
$("#lastname").text(data.LastName)
},
還要注意,您應該使用文本框的change
事件(而不是blur
),以避免當用戶只是在控件之間切換時不必要地調用服務器。
旁注:為什么要覆蓋屬性PGId
的文本框的name
屬性?
編輯
基於OP編輯顯示ShiffId
html,以更新單選按鈕,向單選按鈕添加類名稱(注意:添加了class
屬性以方便選擇,並添加了id
屬性,因此沒有重復項)
@Html.RadioButtonFor(model => model.Shiff, "M", new { id = "shiff-m", @class = "shiff" })
@Html.RadioButtonFor(model => model.Shiff, "N", new { id = "shiff-n", @class = "shiff" })
並將$("#Shiff").val(data.ShiffId)
替換為(假定data.Shiff
為“ M”或“ N”)
$('.shiff[value="' + data.Shiff + '"]').prop('checked', true);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.