首页 文章

如何将HTML控件传递给另一个javascript函数

提问于
浏览
0

我想将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;
}

2 回答

  • 0

    而不是像这样附加你的点击处理程序:

    $('#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 ) . 希望这可以帮助!

  • 0

    代替

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

    使用

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

相关问题