我有以下Jquery从对话框Box返回值并填写主页面中的值:
function AutoCompleteTopayer(pName, addLine, pCity, pState, pZip, pPhone) {
$(".PayerName").html(pName);
$("#txtPayerAddress").val(addLine);
$("#txtPayerCity").val(pCity);
$("#txtPayerState").val(pState);
$("#txtPayerZip").val(pZip);
$("#txtPayerPhone").val(pPhone);
var csz = pCity + ", " + pState + ", " + pZip;
$("#txtCStateZip").val(csz);
$("#SearchPayDlg").dialog("close");
}
我的观点中的代码:
@Html.TextBoxFor(model => model.cityStateZip, new { @class = "fauxInput", id = "txtCStateZip" })
@Html.HiddenFor(model => model.payerCityName, new { id = "txtPayerCity" })
@Html.HiddenFor(model => model.payerStateCode, new { id = "txtPayerState" })
@Html.HiddenFor(model => model.payerPostalZoneOrZipCode, new { id = "txtPayerZip" })
这给出了以下输出:
<小时/>
<span class="txtPayerName">
@Html.DisplayFor(model => model.payerName, new { @class = "fauxInput" })
</span>
并在JQuery方法中:
$(".txtPayerName").html(pName);
,但那也不起作用。任何解决方案?
<小时/> 后期编辑:对不起,我发现这是关于一个错字...最后一个确实有效..我已编辑并将在这里让它,所以其他人可能从中受益。
上面的代码只是说明了displayFor的类不起作用(感谢Darin Dimitrov),所以这应该有效:
<span class="txtPayerName fauxInput">
@Html.DisplayFor(model => model.payerName)
</span>
答案 0 :(得分:1)
DisplayFor
助手的第二个参数并不能完全符合你的想法(应用CSS类)。它允许您将其他ViewData传递给显示模板。
因此,您可以将CSS应用于包含元素
<span class="txtPayerName fauxInput">
@Html.DisplayFor(model => model.payerName)
</span>
然后调整你的选择器:
$('.fauxInput').html(pName);
您的代码也有效,因为在您的选择器中使用了$(".txtPayerName")
,但重要的是要指出,如果您使用此方法,则不会有fauxInput
。