我正在使用MVC3 Razor。我想更改@ Html.TextboxFor的onchange事件上的标签文本。
这是我正在尝试的代码:
观看视频:
@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @onchange = "event();" })
JavaScript的:
function event() {
document.getElementById('lblSelectedProductName').value ="sam";
}
但它不起作用。
答案 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>