js函数传参问题!

时间:2022-09-12 18:49:11
部分代码如下:
  <script language="javascript">

 function cx(s)
 {  
      if(confirm("确认撤销吗?")){
  //  dal.deleteBookInfo(log,s);
      alert("撤销成功!");
      alert(s);
      }
 }
         </script>


<%  
     
ArrayList List =bookInfoList1.getBookInfoList();

bookInfo[] b = (bookInfo[])List.toArray(new bookInfo[List.size()]);

             for(int i=0;i<b.length;i++){
                   out.print("<TR>");
 
                   out.print("<TD >"+b[i].getSQSJ()+"</TD>");
                   out.print("<TD >"+b[i].getSQDW() +"</TD>"); 
                   %>
                   
                   
               <TD ><input type="button" name="Submit" value="修改" onClick="window.location.href='bx1.jsp?SQSJ=<%=b[i].getSQSJ()%>'">
                
               <TD ><input type="button" name="Submit2" value="撤销" onClick="cx(<%=b[i].getSQSJ()%>)">



之前发了一个帖子,修改按钮的onclick功能成功实现了。但是做撤销的功能时候又出现问题。

<%=b[i].getSQSJ()%>这种形式的参数没法传到js函数里,点撤销按钮没有反应。

试过cx(123),这样就可以传过去。

onClick="alert(<%=b[i].getSQSJ()%>)"> 这样也没法显示。做修改按钮的时候我也这样测试过,虽然能传到目标页面,但是用alert就显示不出来,不知道什么原因,希望大神帮助。

其实我想传3个参数,onClick="cx(<%=b[i].getSQSJ()%>,<%=b[i].getSQDW()%>,<%=dal%>)"  ,不行,后来试了试一个参数都不行,头就大了。。

求助!!

16 个解决方案

#1


你看下最后生成的 html 你 的   onClick="cx(<%=b[i].getSQSJ()%>)"  

这些生成没

#2


firebug 看下你页面这里传过去的是什么

#3


引用 1 楼 rui888 的回复:
你看下最后生成的 html 你 的   onClick="cx(<%=b[i].getSQSJ()%>)"  

这些生成没



怎么看呢? js函数传参问题!

#4


引用 2 楼 Menglinyang 的回复:
firebug 看下你页面这里传过去的是什么


大神,怎么看,能教教我嘛。。。

#5


onClick="cx(<%=b[i].getSQSJ()%>)"  你能确定<%=b[i].getSQSJ()%>  你这里取到值了么?

#6


F12 然后里面有个Script的然后你再你的写的js上打断点就可以进入方法中看了

#7


 F12调试 或者   浏览器右击 看源代码

#8


引用 5 楼 LJ_liujue 的回复:
onClick="cx(<%=b[i].getSQSJ()%>)"  你能确定<%=b[i].getSQSJ()%>  你这里取到值了么?


我不确定啊。点撤销按钮没反应。
但是onClick="window.location.href='bx1.jsp?SQSJ=<%=b[i].getSQSJ()%>'">可以传过去值,很奇怪。

而且onClick="alert(<%=b[i].getSQSJ()%>)"> 这样也没法显示。 怎么回事。。。。

#9


引用 8 楼 jsfctzs 的回复:
Quote: 引用 5 楼 LJ_liujue 的回复:

onClick="cx(<%=b[i].getSQSJ()%>)"  你能确定<%=b[i].getSQSJ()%>  你这里取到值了么?


我不确定啊。点撤销按钮没反应。
但是onClick="window.location.href='bx1.jsp?SQSJ=<%=b[i].getSQSJ()%>'">可以传过去值,很奇怪。

而且onClick="alert(<%=b[i].getSQSJ()%>)"> 这样也没法显示。 怎么回事。。。。


你在浏览器里面查看源码看看这段代码就知道了,如果有值,那么onClick="alert(这个里面会有值,否则为空)"

#10


b[i] 的i 这里是哪里循环的?

#11


onClick="cx(<%=b[i].getSQSJ()%>)"
加个单引号上去
onClick="cx('<%=b[i].getSQSJ()%>')"

#12


应该是你没有加引号的原因,java字符串放到js里要用引号括起来的

onClick="cx('<%=b[i].getSQSJ()%>','<%=b[i].getSQDW()%>','<%=dal%>')"  当然也可以用"的html转义形式&#34;
根据你的get方法名至少有一个是字符串,必须要引号,不然js不认字符串,很简单的问题,你浏览器里查看源代码就很容易发现问题 js函数传参问题!

#13


不懂这个…… js函数传参问题!

#14


onClick="cx(‘<%=b[i].getSQSJ()%>’)"   用单引号引住参数,如果b[i].getSQSJ()是字符串的话

#15


引用 10 楼 u012099141 的回复:
b[i] 的i 这里是哪里循环的?



代码没粘全,不好意思,按钮是在循环里的,已经实现了。修改功能可以用,是把当前行的数据传到另一个页面的

#16


引用 11 楼 sj1231984 的回复:
onClick="cx(<%=b[i].getSQSJ()%>)"
加个单引号上去
onClick="cx('<%=b[i].getSQSJ()%>')"


啊,恍然大悟,这么简单的小问题有时候就是看半天找不出来。。。我试试。。

#1


你看下最后生成的 html 你 的   onClick="cx(<%=b[i].getSQSJ()%>)"  

这些生成没

#2


firebug 看下你页面这里传过去的是什么

#3


引用 1 楼 rui888 的回复:
你看下最后生成的 html 你 的   onClick="cx(<%=b[i].getSQSJ()%>)"  

这些生成没



怎么看呢? js函数传参问题!

#4


引用 2 楼 Menglinyang 的回复:
firebug 看下你页面这里传过去的是什么


大神,怎么看,能教教我嘛。。。

#5


onClick="cx(<%=b[i].getSQSJ()%>)"  你能确定<%=b[i].getSQSJ()%>  你这里取到值了么?

#6


F12 然后里面有个Script的然后你再你的写的js上打断点就可以进入方法中看了

#7


 F12调试 或者   浏览器右击 看源代码

#8


引用 5 楼 LJ_liujue 的回复:
onClick="cx(<%=b[i].getSQSJ()%>)"  你能确定<%=b[i].getSQSJ()%>  你这里取到值了么?


我不确定啊。点撤销按钮没反应。
但是onClick="window.location.href='bx1.jsp?SQSJ=<%=b[i].getSQSJ()%>'">可以传过去值,很奇怪。

而且onClick="alert(<%=b[i].getSQSJ()%>)"> 这样也没法显示。 怎么回事。。。。

#9


引用 8 楼 jsfctzs 的回复:
Quote: 引用 5 楼 LJ_liujue 的回复:

onClick="cx(<%=b[i].getSQSJ()%>)"  你能确定<%=b[i].getSQSJ()%>  你这里取到值了么?


我不确定啊。点撤销按钮没反应。
但是onClick="window.location.href='bx1.jsp?SQSJ=<%=b[i].getSQSJ()%>'">可以传过去值,很奇怪。

而且onClick="alert(<%=b[i].getSQSJ()%>)"> 这样也没法显示。 怎么回事。。。。


你在浏览器里面查看源码看看这段代码就知道了,如果有值,那么onClick="alert(这个里面会有值,否则为空)"

#10


b[i] 的i 这里是哪里循环的?

#11


onClick="cx(<%=b[i].getSQSJ()%>)"
加个单引号上去
onClick="cx('<%=b[i].getSQSJ()%>')"

#12


应该是你没有加引号的原因,java字符串放到js里要用引号括起来的

onClick="cx('<%=b[i].getSQSJ()%>','<%=b[i].getSQDW()%>','<%=dal%>')"  当然也可以用"的html转义形式&#34;
根据你的get方法名至少有一个是字符串,必须要引号,不然js不认字符串,很简单的问题,你浏览器里查看源代码就很容易发现问题 js函数传参问题!

#13


不懂这个…… js函数传参问题!

#14


onClick="cx(‘<%=b[i].getSQSJ()%>’)"   用单引号引住参数,如果b[i].getSQSJ()是字符串的话

#15


引用 10 楼 u012099141 的回复:
b[i] 的i 这里是哪里循环的?



代码没粘全,不好意思,按钮是在循环里的,已经实现了。修改功能可以用,是把当前行的数据传到另一个页面的

#16


引用 11 楼 sj1231984 的回复:
onClick="cx(<%=b[i].getSQSJ()%>)"
加个单引号上去
onClick="cx('<%=b[i].getSQSJ()%>')"


啊,恍然大悟,这么简单的小问题有时候就是看半天找不出来。。。我试试。。