[英]How to pass Textbox value to Javascript function?
我的查看代码如下所示,我在按键事件中调用javascript函数。 我想将控制值传递给javascript函数。 我尝试使用'this'和@this,但是没有用。
@Html.TextBoxFor(m => m.LeaveDetailsList[0].LeaveTaken, new {id = "numLeaveTaken1", width = "100", @onkeyup = "checkInp2(this);" })
**编辑** JavaScript代码:
function checkInp2(ControlId) {
var x = document.getElementById(ControlID).value;
if (isNaN(x)) {
document.getElementById("btnSave").disabled = true;
return false;
}
else {
document.getElementById("btnSave").disabled = false;
}
}
您应该避免使用行为污染标记,而应使用Unobtrusive Javascript 。 给文本框一个类名
@Html.TextBoxFor(m => m.LeaveDetailsList[0].LeaveTaken, new { @class = "leave-taken" })
然后脚本
var button = $('#btnSave'); // cache it
$('.leave-taken').keyup(function() {
if(isNaN($(this).val())) {
button.prop('disabled', true);
} else {
button.prop('disabled', false);
}
});
或者可以减少到
$('.leave-taken').keyup(function() {
button.prop('disabled', !isNaN($(this).val()));
});
还要注意,控件现在可以使用css- .leave-taken { width: 100px; }
.leave-taken { width: 100px; }
我认为您的onkeyup
事件应该可以工作(即使现在内联事件实际上并不是最佳实践列表的首位),但不能与当前功能一起使用。 尝试将其更改为:
function checkInp2(ControlId) {
var x = ControlId.value;
...
}
您要this
事件(触发事件的元素)发送给函数,因此无需使用getElementById
。
如果您想通过ID显式获取元素,则可以使用..
document.getElementById('numLeaveTaken1').value; //pure JavaScript
$('#numLeaveTaken1').val(); //jQuery
在这种情况下,你可以跳过this
一起。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.