【问题标题】:I'm calling a function inside of a href. How can I pass more than one parameter through?我在href中调用一个函数。如何传递多个参数?
【发布时间】:2016-06-24 15:40:41
【问题描述】:

我有一个 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");
}

但我想在从returnHyperLink 调用switchPage 时再添加一个参数。

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

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

这样我就可以访问特定的行数据object 并从中提取信息switchPage 中调用$("#contents").load("jsp/newpage.jsp"); 之前

显然,我的新 switchPage 函数应该是这样的:

function switchPage(cellValue, rowdata)

【问题讨论】:

  • 那么什么不起作用?
  • @Rayon 当我说“我正在寻找这样的正确格式”时,这就是代码似乎不正确。例如,当我尝试 console.log rowdata.name 时,它​​会打印“未定义”。当我从 returnHyperLink 内部尝试相同的事情时,它可以正常工作。我认为我的参数没有通过

标签: javascript jquery html jsp jqgrid


【解决方案1】:

您不能直接传递行数据,因为您不能在内联 onclick 事件中传递对象。要做到这一点,你应该把它放在一个 javascript 中定义的 onlick 中,如this Question 中所述,但这对你不起作用。

所以你应该做的是一个接一个地传递你需要的所有行数据字段假设你需要来自行数据的 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");
}

【讨论】:

    【解决方案2】:

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

        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
        }
    

    【讨论】:

      猜你喜欢
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      • 2023-01-26
      • 1970-01-01
      相关资源
      最近更新 更多