如何获得EditorFor JavaScript ASP的价值

时间:2014-12-09 12:42:11

标签: javascript asp.net

我想在ASP中获得EditorFor的值,但它不会给我任何回报。

感谢您的帮助

<div class="form-group" id="ParticipantNumber">
    @Html.LabelFor(model => model.ParticipantNumber, new { @class = "control-label col-md-2"})
    <div class="col-md-10">
        @Html.EditorFor(model => model.ParticipantNumber, new { @class = "ParticipantNumber", disabled = "disabled" })
        @Html.ValidationMessageFor(model => model.ParticipantNumber)
    </div>
</div>

我的JavaScript代码

$('#ParticipantNumber').keyup(function () {
    var s = $('#ParticipantNumber').val();
    console.log(s)
}

2 个答案:

答案 0 :(得分:0)

您的JavaScript正在寻找$('#ParticipantNumber'),这是ID为ParticipantNumber的元素。您的代码使用以下命令定义编辑器:

@Html.EditorFor(model => model.ParticipantNumber, new {
                          @class = "ParticipantNumber", disabled = "disabled" })

此处的目的是将input分配给ParticipantNumber类,这意味着您可以使用`$(&#39; .ParticipantNumber&#39;)来代替它。

但是,您使用的参数是additionalViewData; EditorFor HTML编辑器没有将HTML属性反映回渲染器的属性。你有两个选择:

  1. 撰写自定义模板
  2. 更改您引用input
  3. 的方式

    选项1可能对您的需求有点过分;使用选项2,通过简单地引用input中的<div id='ParticipantNumber'>,以下内容即可解决您的问题:

    @Html.EditorFor(model => model.ParticipantNumber)
    
    $('#ParticipantNumber input').keyup(function () {
        var s = $(this).val();
        console.log(s)
    }
    

答案 1 :(得分:-1)

在javascript中,您正在查询&#34; id&#34;属性,但@Html.EditorFor默认情况下不会发出任何ID。您可以像这样修改代码

@Html.EditorFor(model => model.ParticipantNumber, new { @class = "ParticipantNumber", disabled = "disabled", id="ParticipantNumber" })

然后你的javascript就可以了。