Html.EditFor Onchange事件

use*_*679 9 html5 razor asp.net-mvc-4

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

以下是"查看"页面上的代码

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

 function OnChangeEvent()
{
    alert("value is changed");
    @{ Model.IsChanged = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

要检查是否正在调用OnChangeEvent,我会发出警报.但警报不起作用.
这意味着OnChangeEvent不会被称为.

model.ExternalVenderNo被更改时,我只想将IsChanged字段更改为true .

模特bool IsChanged

Ath*_*baN 14

尝试相同的 @Html.TextBoxFor

@Html.TextBoxFor(model => model.ExternalVenderNo, new { onchange = "OnChangeEvent()" })

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

或者让Jquery处理更改事件

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

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


小智 6

尝试添加到属性

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

这对我有用。


Dil*_*165 5

以下一定对您有用.

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