对于MVC textboxfor,jquery没有更改@placeholder或placeholder属性

时间:2017-07-11 09:31:20

标签: jquery html asp.net-mvc

当我尝试更改placeholder元素的input属性时,它已成功完成。如果我将其更改为MVC中的textboxfortextareafor元素,即使我使用@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

1 个答案:

答案 0 :(得分:2)

鉴于您没有为元素指定id属性,它将采用所提供模型的属性名称,因此您需要使用$('#Email'),而不是{{ 1}},在你的jQuery代码中。

或者,您可以在$('#mail')选项中提供id

TextBoxFor