6

我想使用 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 一起使用。提前致谢

4

4 回答 4

4

您最好使用 TextBoxFor 方法,因为它允许您直接更改元素的 id 和类,而 EditorFor 则不能,除非您为其创建自定义编辑状态(使用 EditorTemplate)。

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

我相信@Html.EditorFor(model => model.ID)会设置 name 属性,因为这是 mvc 依赖于执行其模型绑定的,所以如果上面不符合您的喜好,您也许可以使用 name 作为选择器。

于 2013-06-27T05:23:36.267 回答
3

您可以按如下方式添加@id,@class等:EditorFor

@Html.EditorFor(model => model.ID, new {htmlAttributes = new {@id="someid"}})
于 2014-11-05T18:55:05.623 回答
2

这对我有用

<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());
于 2015-04-01T06:34:37.483 回答
0

你应该使用

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

然后

$("#someid").val (someval)
于 2013-06-27T05:23:47.417 回答