簡體   English   中英

如何將Textbox值傳遞給Javascript函數?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM