在mvc3中更改@ Html.TextboxFor的onchange事件上的标签文本

时间:2013-07-26 06:57:39

标签: javascript asp.net-mvc asp.net-mvc-3

我正在使用MVC3 Razor。我想更改@ Html.TextboxFor的onchange事件上的标签文本。

这是我正在尝试的代码:

观看视频:

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

JavaScript的:

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

但它不起作用。

4 个答案:

答案 0 :(得分:20)

使用这个jquery语法可以正常工作。

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

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

答案 1 :(得分:4)

这可以通过JavaScript完成,但我更习惯使用jQuery。我喜欢将我的HTML和JavaScript分开,而是在所有控件加载到DOM之后监听on change事件。

您的文本框HTML标记可能如下所示。我添加了自己的标签元素用于测试目的。

<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();
     });
});

我希望这会有所帮助。

答案 2 :(得分:0)

问题在于事件名称尝试使用不同的事件名称。

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

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

此致

答案 3 :(得分:0)

你可以尝试这个

  @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>