2013-06-27 167 views
4

我想使用jquery設置我的輸入文本的值。我已經這樣嘗試:如何設置@ Html.EditorFor在asp.net中使用jquery的值mvc

<div class="editor-label"> 
     @Html.LabelFor(model => model.ID) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.ID) 
     @Html.ValidationMessageFor(model => model.ID) 
    </div> 

和jQuery語法:

$("#ID").val(data.ID); 

但它無法正常工作。我曾嘗試相同的jQuery代碼與此:

<input type="text" id="ID" /> 

這種方法的工作,但我不知道爲什麼@ Html.EditorFor不使用jQuery .Thanks提前

+0

有嘗試$( 「#ID」)VAL(data.ID)。 inside document.ready – Amit

回答

3

你更好工作使用TextBoxFor方法關閉,因爲它允許您直接更改元素的id和類,而EditorFor不會除非您爲它創建自定義編輯狀態(使用EditorTemplate)。

@Html.TextBoxFor(model => model.ID, new { id = "ID" }) 

相信@Html.EditorFor(model => model.ID)將設置name屬性因爲這是MVC取決於做了模型綁定,所以如果上面沒有你喜歡你可以或許用名字作爲選擇。

0

您應該使用

@Html.EditorFor(model => model.ID, new {@id="someid"}) 

然後

$("#someid").val (someval) 
+0

我不認爲你可以這樣做,因爲EditorFor的第二個參數實際上是視圖數據而不是包含像TextBoxFor一樣的html屬性的匿名對象。有關更多詳細信息,請參閱http://stackoverflow.com/questions/3735400/html-attributes-for-editorfor-in-asp-net-mvc。 – JonVD

+0

也許你是對的,我來自移動,所以我不能檢查,但我認爲其中一個參數應該是... – StringBuilder

+0

我很驚訝你無法在EditorFor上設置html屬性,看起來像是一個奇怪的決定。 – JonVD

2

您可以EditorFor添加@id@class等如下:

@Html.EditorFor(model => model.ID, new {htmlAttributes = new {@id="someid"}}) 
1

這對我的作品

<div class="editor-field"> 
    @Html.EditorFor(model => model.ID) 
    @Html.ValidationMessageFor(model => model.ID) 
</div> 

<div class="editor-field"> 
    @Html.EditorFor(model => model.SetID) 
    @Html.ValidationMessageFor(model => model.SetID) 
</div> 

和JavaScript是

var d = $("#ID ").val(); 
$("#SetID").val(d); 

$("#SetID").val($("#ID ").val()); 
相關問題