Search code examples
htmlasp.net-mvc-4razor

Html.EditFor Onchange Event


I am developing an MVC4 application.
I want to change IsChanged field in my Model, when model.ExternalVenderNo is changed.

Below are codes on View page

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

and

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

To check whether OnChangeEvent is being called , i put alert. But alert is also not working.
it means OnChangeEvent is not beign called.

I just want to change IsChanged field to true, when model.ExternalVenderNo is changed.

Model has bool IsChanged


Solution

  • Try the same with @Html.TextBoxFor

    @Html.TextBoxFor(model => model.ExternalVenderNo, new { onchange = "OnChangeEvent()" })
    
    <script type="text/javascript">
     function OnChangeEvent(){
        alert("value is changed");
        @Model.IsChanged = true;
     }
    </script>
    

    or leave Jquery to handle the change event

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