2013-06-27 164 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()); 
相关问题