2017-07-11 39 views
1

當我嘗試更改input元素的placeholder屬性它已成功完成。如果我將其更改爲MVC中的textboxfortextareafor元素,即使我使用@placeholder或僅placeholder,它也不起作用。這裏是我使用的塊@placeholder或placeholder屬性沒有改變jQuery的MVC文本框爲

<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); 
       }, 
      }); 
     }); 
    }); 

這就是問題所在。此功能不會更改textboxforplaceholder屬性。

<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

回答

2

既然你不指定元素的id屬性,它會提供的模型的屬性的名稱,因此您需要在您的jQuery代碼中使用$('#Email'),而不是$('#mail')

或者,您可以提供在TextBoxFor選項的id

@Html.TextBoxFor(m => m.Email, new { @id = "mail", @class = "form-control", placeholder = "Email" }) 
+0

是的,這就是問題所在。所以我錯過了它。謝謝。 –