[英]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.