我想使用jquery设置输入文本的值。我试过这样做:
<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。提前谢谢
答案 0 :(得分:3)
最好使用TextBoxFor方法,因为它允许您直接更改元素的id和类,而EditorFor则不会,除非您为它创建自定义编辑状态(使用EditorTemplate)。
@Html.TextBoxFor(model => model.ID, new { id = "ID" })
我相信@Html.EditorFor(model => model.ID)
会设置name属性,因为mvc依赖它来进行模型绑定,所以如果上面的内容不符合您的喜好,您可以使用该名称作为选择器。
答案 1 :(得分:2)
您可以在@id
上添加@class
,EditorFor
等,如下所示:
@Html.EditorFor(model => model.ID, new {htmlAttributes = new {@id="someid"}})
答案 2 :(得分: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());
答案 3 :(得分:0)
你应该使用
@Html.EditorFor(model => model.ID, new {@id="someid"})
然后
$("#someid").val (someval)