измените текст метки на событии 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>