无法在javascript函数中传递字符串值

时间:2013-04-02 11:12:25

标签: javascript fusioncharts

for(int i = 0; i < ob.length; i++) {
  logger.logDebug(this.getClass(),"ob value check- "+ob[i].toString());
  String val=ob[i].toString();
  strXML1.append("<graph caption='City Wise Total Properties' xAxisName='City' yAxisName='Count' decimalPrecision='0' formatNumberScale='0'>")
         .append("<set name='")
         .append(ob[i].toString())
         .append("'  value='" + ob1[i].toString())
         .append( "'color='A186BE' link='javascript:drillDownReport1(2,"+val+")' />")
         .append("</graph>");
  } 

我没有使用以下JavaScript函数获取val的值:

function drillDownReport1(reportnumber,val) {
    alert("val"+val);
}

任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:2)

这是因为生成的javascript是val =“toto”

javascript:drillDownReport1(2,toto)' />")

而不是

javascript:drillDownReport1(2,"toto")' />")

所以你需要通过引用你的字符串来逃避。像那样:

.append( "'color='A186BE' link='javascript:drillDownReport1(2,\""+val+"')' />")

答案 1 :(得分:1)

使用

var val=ob[i].toString();

而不是

String val=ob[i].toString();

原因,你知道,这是JavaScript。

答案 2 :(得分:0)

您的问题就是将val的值放入函数

由于val是一个字符串,您需要将其放在引号中。

strXML1.append("<graph caption='City Wise Total Properties' xAxisName='City' yAxisName='Count' decimalPrecision='0' formatNumberScale='0'>")
        .append("<set name='")
        .append(ob[i].toString())
        .append("'  value='" + ob1[i].toString())
        .append( "'color='A186BE' link='javascript:drillDownReport1(2,\""+val+"\")' />")
        .append("</graph>");