簡體   English   中英

如何將HTML控件傳遞給另一個JavaScript函數

[英]How to pass a HTML control to another javascript function

我想將HTML控件傳遞給JavaScript中的另一個函數。 我正在調用具有輸入控件和保存按鈕的模式彈出窗口。

我在其中調用模式彈出窗口的函數將整個GridView行作為參數。 我想將其傳遞給另一個javascript函數,該函數將在模式對話框的內部單擊按鈕時調用。

我嘗試如下,但它傳遞了一個字符串變量。

function ShowDialogPeoplePicker(id, requestType, cntrl) {

    var row = cntrl.parentNode.parentNode;
    var rowIndex = row.rowIndex - 1;
    var Approvers = row.cells[1].getElementsByTagName("span")[0];

    if (requestType == "AddApprovers") {
        $('#btnAddApprover').removeAttr('onclick');
        $('#btnAddApprover').attr('onClick', 'if (!setApprovers(\''  +cntrl + '\')) return false;');
    }
}

單擊按鈕將調用以下函數,並將在GridView行內設置值。

function setApprovers(cntrl)
{
    var usernames= $("#hdnApproversName_CTO").val();
    var row = cntrl.parentNode.parentNode;
    var rowIndex = row.rowIndex - 1;
    row.cells[1].getElementsByTagName("span")[0].innerHTML = usernames;

    $("#overlayTasks").hide();
    $("#dialogTasks").hide();

    return false;
}

代替

$('#btnAddApprover').attr('onClick', 'if (!setApprovers(\''  +cntrl + '\')) return false;');

采用

$('#btnAddApprover').click(function() {
  return setApprovers(cntrl);
}

而不是像這樣附加點擊處理程序:

$('#btnAddApprover').attr('onClick', 'if (!setApprovers(\''  +cntrl + '\')) return false;');

嘗試以下方法:

$('#btnAddApprover').on('click', function() {
    setApprovers(cntrl);
});

如果您需要刪除以前添加的事件偵聽器,可以使用以下方法:

$('#btnAddApprover').off('click');

或者,如果您想附加監聽器以僅一次監聽一次,則可以使用:

$('#btnAddApprover').one('click', function() {
    setApprovers(cntrl);
});

(用one代替on )。 希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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