如何将onchange添加到Html.EditorFor?

时间:2015-01-06 11:18:15

标签: javascript jquery html asp.net-mvc

我的页面中有第二件事:

<tbody>
  @for (int i = 0; i < Model.Options.Count; i++)
  {
    ...
    ...

    <tr>
        <td>
            @Html.EditorFor(m => Model.Option[i].Date, new {id = Model.Option[i].OptionId})
        </td>
    </tr>
    <tr>
        <td>
            @Html.EditorFor(m => Model.Options[i].Completed, new {id = Model.Option[i].OptionId})
        </td>
    </tr>

    ...
    ...
  }
</tbody>

我需要为Completed添加onchange事件。 我试着这样做:

new { id = Model.Option[i].OptionId, onchange = "StateChange()"}

并创建函数StateChange()但问题是 onchange没有添加到我的EdditorFor。因此,对javascript函数没有任何反应。

我在BoolYesNo.cshtml(编辑模板)中尝试了第二件事:

@model bool?

Yes @Html.RadioButton("", true, Model.HasValue && Model.Value == true, htmlAttributes: ViewData["htmlAttributes"])
No @Html.RadioButton("", false, Model.HasValue && Model.Value == false, htmlAttributes: ViewData["htmlAttributes"])

但没有效果。

我的问题是,如何才能将onchange事件添加到我的@ Html.EditorFor? (这是无线电)。

P.S抱歉我的英语不好。

编辑1 @onchange或@onChange无效。

2 个答案:

答案 0 :(得分:0)

你可以尝试

@onChange = "StateChange()"

或者

new { id = Model.Option[i].OptionId, @class = "input"}

并在javascript中

$(".input").on("change", StateChange());

答案 1 :(得分:0)

我已尝试使用您的代码,并通过设置onchange(如下所示)来工作

@Html.RadioButtonFor(m => Model.Options[i].Completed, Model.Options[i].OptionId, new { id = Model.Options[i].OptionId.ToString(), Name="radios", @onchange = "StateChange();" })