我正在调用href中的函数。如何通过多个参数传递?

时间:2016-06-24 15:40:41

标签: javascript jquery html jsp jqgrid

我有一个jqgrid,我在自定义格式化程序中调用'returnHyperLink'。这段代码工作正常,并转到我要求的链接:

function returnHyperLink(cellValue, options, rowdata, action) {
     return '<a id="myLink" href="#" onclick="switchPage(\''+cellValue+'\');">'+cellValue+'</a>'

}

function switchPage(cellValue) {
     $("#contents").load("jsp/newpage.jsp");
}

但是我想在switchPage呼叫returnHyperLink时再添加一个参数。

我正在寻找像这样的正确格式:

function returnHyperLink(cellValue, options, rowdata, action) {
return '<a id="myLink" href="#" onclick="switchPage(\''+cellValue+'\', \''+rowdata+'\');">'+cellValue+'</a>'
}

这样我就可以访问该特定的rowdata object,然后在$("#contents").load("jsp/newpage.jsp"); 中调用switchPage 之前从中提取信息

显然,我的新switchPage功能如下所示:

function switchPage(cellValue, rowdata)

2 个答案:

答案 0 :(得分:0)

您无法直接传递rowdata,因为您无法在内联onclick事件中传递对象。要做到这一点,你应该按照this Question中的描述在javascript中定义onlick,但这对你不起作用。

那么你应该做的就是逐个通过你需要的所有rowdata字段让我们说你需要在你的行中使用Field1和Field2

 function returnHyperLink(cellValue, options, rowdata, action) 
 {
   return '<a id="myLink" href="#" onclick="switchPage(' + cellValue+ ', ' + rowdata.Field1+ ', ' + rowdata.Field2+');">' + cellValue+ '</a>';          
 }

function switchPage(cellValue,field1, field2) {
    // do whatever with field1,field2...
     $("#contents").load("jsp/newpage.jsp");
}

答案 1 :(得分:0)

您可以使用数组构建链接字符串,例如......

    function returnHyperLink(cellValue, options, rowdata, action) {
        var link = "<a id='myLink' href='#' onclick='switchPage(" + cellvalue;
        $.each(rowdata, function (index, value) {
            link += ", " + value
        });
        link + ');">' + cellValue + '</a>';
        return link
    }