当我尝试更改input元素的placeholder属性时,它成功地完成了。如果我在MVC中将其更改为textboxfor或textareafor元素,即使我使用@placeholder或仅使用placeholder,它也不起作用。下面是我使用的代码块
<div class="form-group">
<input type="email" class="form-control" name="mail" value="" placeholder="Email"/>
</div>此属性随此函数而变化。
$(document).ready(function () {
$("#change").click(function () {
debugger;
$.ajax({
url: '@Url.Action("ChangeCulture", "Home")',
data: { cultureCode: $('#change').text() },
type: "GET",
dataType: "json",
success: function (data) {
debugger;
$("#person").attr("placeholder", data.Name);
$("#mail").attr("placeholder", data.Email);
$("#subject").attr("placeholder", data.Matter);
$("#message").attr("placeholder", data.Detail);
},
});
});
});这是问题所在。此函数不会更改textboxfor placeholder属性。
<div class="form-group">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control", placeholder = "Email" })
@Html.ValidationMessageFor(m => m.Email, "", new { @class = "error" })
</div>jQuery版本为3.1.1,MVC版本为5.2.3
发布于 2017-07-11 17:35:34
假设您没有为元素指定id属性,它将采用所提供模型的属性的名称,因此您需要在jQuery代码中使用$('#Email'),而不是$('#mail')。
或者,您可以在TextBoxFor选项中提供id:
@Html.TextBoxFor(m => m.Email, new { @id = "mail", @class = "form-control", placeholder = "Email" })https://stackoverflow.com/questions/45030631
复制相似问题