измените текст метки на событии onchange @Html.TextboxFor в mvc3

Я работаю с бритвой MVC3. Я хочу изменить текст метки на событии onchange @Html.TextboxFor.

вот мой код, что я пытаюсь:

On View:

@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @onchange = "event();" })

JavaScript:

function event() {
    document.getElementById('lblSelectedProductName').value ="sam";
}

но это не работает.

4 ответов


используйте этот синтаксис jQuery, его работа прекрасна.

@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @id="txtid",@onchange = "onchangeevent();" })

function onchangeevent(){
        $('#txtid').val('sam');
    }

Это можно сделать с помощью JavaScript, но мне удобнее использовать jQuery. Мне нравится отделять HTML и JavaScript и скорее слушать событие on change после загрузки всех элементов управления в DOM.

ваша разметка HTML для текстового поля может выглядеть примерно так. Я добавил свой собственный элемент label для целей тестирования.

<input id="ItnScanCaseCode" name="ItnScanCaseCode" type="text" value="" />
<label id="lblSelectedProductName">Test Label Text</label>

и ваш скрипт jQuery для добавления прослушивателя событий on change:

$(document).ready(function () {
     $('#ItnScanCaseCode').change(function () {
          $('#lblSelectedProductName').text('sam');
     });
});

Если вам нужно добавить этот текст метки изменяется на отдельный метод функции, затем сделайте это так, но для меня достаточно вышеуказанного способа.

$(document).ready(function () {
     function yourEventMethod() {
          $('#lblSelectedProductName').text('sam');
     };

     $('#ItnScanCaseCode').change(function () {
          yourEventMethod();
     });
});

надеюсь, это поможет.


проблема с именем события попробуйте с другим именем события, оно будет работать.

@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @onchange = "onchangeevent();" })

function onchangeevent(){
        document.getElementById('lblSelectedProductName').value ="sam";
    }

в отношении


вы можете попробовать этот

  @Html.TextBoxFor(model => model.Image, new { type = "file",
                       @onchange = "show(this);" })

где мой JavaScript это

<script type="text/javascript">

   function show(input) {
      if (input.files && input.files[0]) {
      var filerdr = new FileReader();
      filerdr.onload = function (e) {
         $('#user_img').attr('src', e.target.result);
      }
      filerdr.readAsDataURL(input.files[0]);
   }
}
</script>