Html.EditorFor Onchange事件

时间:2013-10-18 14:58:15

标签: html5 asp.net-mvc-4 razor

我正在开发一个MVC4应用程序 当 model.ExternalVenderNo 发生更改时,我想更改模型中的 IsChanged 字段。

以下是查看页面上的代码

 <div class="editor-field">
        @Html.EditorFor(model => model.ExternalVenderNo, new { @onchange = "OnChangeEvent();" })
        @Html.ValidationMessageFor(model => model.ExternalVenderNo)
    </div>

 function OnChangeEvent()
{
    alert("value is changed");
    @{ Model.IsChanged = true;
    }
}

要检查是否正在调用 OnChangeEvent ,我会将警告。 但提醒无法正常工作  这意味着 OnChangeEvent 不会被调用。

model.ExternalVenderNo 发生变化时,我只想将 IsChanged 字段更改为true。

模型bool IsChanged

4 个答案:

答案 0 :(得分:12)

使用@Html.TextBoxFor

尝试相同的操作
@Html.TextBoxFor(model => model.ExternalVenderNo, new { onchange = "OnChangeEvent()" })

<script type="text/javascript">
 function OnChangeEvent(){
    alert("value is changed");
    @Model.IsChanged = true;
 }
</script>

或让Jquery处理更改事件

@Html.EditorFor(model => model.ExternalVenderNo)

<script type="text/javascript">
$('#ExternalVenderNo').change(function(){
    alert('Changed!');
    @Model.IsChanged = true;
});
</script>

答案 1 :(得分:5)

以下内容肯定适合您。

$(document).ready(function()
{
   $('#ExternalVenderNo').on("change", function()
   {
      alert('Changed!');
   });
});

答案 2 :(得分:4)

尝试添加属性

@Html.EditorFor(model => Model.Lengthofside1, new {  htmlAttributes = new { onchange = "OnChangeEvent(this)", @class = "form -control text-right" } })

这对我有用。

答案 3 :(得分:1)

为此尝试jquery

$('#ExternalVenderNo').change(function(){
    alert('Changed!');
});