js中onclick传值问题
<inputtype='button'name='goBackBtn'value='返回'onClick=\"javaScript:goBackProd(\'"+all+...
<input type='button' name='goBackBtn' value='返回' onClick=\"javaScript:goBackProd(\'"+all+"\');\" />在js中,要为新打开的页面添加个返回按钮,想在goBackProd方法中传多个值,为什么onClick=\"javaScript:goBackProd(\'"+all+"\',\'"+all2+"\');\"不行,应该怎么写?
展开
6个回答
展开全部
onclick=" "
""在外面,不能再里面
\" 是转义 转义是在""里面才生效
一般在页面中的""里面的js代码,可以不用\" 直接用'就可以了
如果all 和 all2 是变量名
应该是onClick="goBackProd(all,all2)" 很简单 "" 里面就看成js语句
如果all 和all2 是字符数据值
应该是onClick="goBackProd('all','all2')" 也很简单 '在"" 里面就看成"
如果你一定要用"的话
就是onClick="goBackProd(\"all\",\"all2\")" 也很简单 \"在"" 里面就看成"
字符值和字符值相加不需要+号
只有和变量 相加采用+号
onclick外部可以认为没有变量的,所有的变量都是在js环境下的
所以根本没有需要写成
onClick="goBackProd("+all+")" 这样的形式
如果all是一个具体字符串值
也不需要onClick="goBackProd("+"\"all\")"形式,前面说了 在js中都是语句,直接连续书写不需要+号
总之不管是变量还是定值 都没有你那个形式
注:默认环境下, "javascript." 可以省略
对了
你说input是js中的,这是非不得已的方法
但是一定要用的话
你要把整个input进行编译转义
即原来是<input type='button' name='goBackBtn' value='返回'
onClick="goBackProd(all,all2)" />
现在要写成
1:all值在onclick时带入
"<input type='button' name='goBackBtn' value='返回'
onClick=\"goBackProd(all,all2)\" />"
就是说all不需要立即带入,执行点击的时候带入
2:all值现在就带入,以后点击它就执行现在all的参数
那么用"<input type='button' name='goBackBtn' value='返回'
onClick=\"goBackProd('"+all+",'"+all2+"') />"
推荐你用
var 某个input元素=document.createElement("input") 的方法创建 input元素
那么某个input元素.onclick=function(a1,a2){goBackProd(a1,a2)} 就可以了
""在外面,不能再里面
\" 是转义 转义是在""里面才生效
一般在页面中的""里面的js代码,可以不用\" 直接用'就可以了
如果all 和 all2 是变量名
应该是onClick="goBackProd(all,all2)" 很简单 "" 里面就看成js语句
如果all 和all2 是字符数据值
应该是onClick="goBackProd('all','all2')" 也很简单 '在"" 里面就看成"
如果你一定要用"的话
就是onClick="goBackProd(\"all\",\"all2\")" 也很简单 \"在"" 里面就看成"
字符值和字符值相加不需要+号
只有和变量 相加采用+号
onclick外部可以认为没有变量的,所有的变量都是在js环境下的
所以根本没有需要写成
onClick="goBackProd("+all+")" 这样的形式
如果all是一个具体字符串值
也不需要onClick="goBackProd("+"\"all\")"形式,前面说了 在js中都是语句,直接连续书写不需要+号
总之不管是变量还是定值 都没有你那个形式
注:默认环境下, "javascript." 可以省略
对了
你说input是js中的,这是非不得已的方法
但是一定要用的话
你要把整个input进行编译转义
即原来是<input type='button' name='goBackBtn' value='返回'
onClick="goBackProd(all,all2)" />
现在要写成
1:all值在onclick时带入
"<input type='button' name='goBackBtn' value='返回'
onClick=\"goBackProd(all,all2)\" />"
就是说all不需要立即带入,执行点击的时候带入
2:all值现在就带入,以后点击它就执行现在all的参数
那么用"<input type='button' name='goBackBtn' value='返回'
onClick=\"goBackProd('"+all+",'"+all2+"') />"
推荐你用
var 某个input元素=document.createElement("input") 的方法创建 input元素
那么某个input元素.onclick=function(a1,a2){goBackProd(a1,a2)} 就可以了
展开全部
我在chrome浏览器上测试了这个字符串链接,没问题。
测试代码
function goBackProd(arg1, arg2) {
alert(arg1);
alert(arg2);
}
var all = 'all';
var all2 = 'all2';
var input = "<input type='button' name='goBackBtn' value='返回' onClick=\"goBackProd(\'"+all+"\',\'"+all2+"\');\" />";
document.body.innerHTML = input;
你的问题是点击之后没有反应吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-18 · 知道合伙人互联网行家
关注
展开全部
onClick=\"javaScript:goBackProd(\'"+all+"\');\"
改成:onClick="javaScript:goBackProd(all);“
在使用javascript:声明时,其后面的文字会直接被当做代码解释执行的。
改成:onClick="javaScript:goBackProd(all);“
在使用javascript:声明时,其后面的文字会直接被当做代码解释执行的。
追问
可是我的这个方法是在js文件里的,就是想通过js来控制这个button的显示,然后执行goBackProd方法
追答
测试文件,参数是可以传入的。
是不是处理参数的过程有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你这条代码是直接的html代码,而不是其他脚本输出这条代码的话
那你弄那么多反斜杠干什么?而且是乱用
例外,你在onclick事件中使用了+号连接符,目的是连接一些变量,是吧
那你的2个变量:all all2在哪里啊?哪里来的 啊?
就算你有这个2个js变量,也没必要加啊,除非你要用这个变量拼接其他的变量或者字符串,才+,你只是提供一个变量本身,你+他干什么?
<input type='button' name='goBackBtn' value='返回' onClick="var all = 100; goBackProd(all);" />
这样就可以啊
那你弄那么多反斜杠干什么?而且是乱用
例外,你在onclick事件中使用了+号连接符,目的是连接一些变量,是吧
那你的2个变量:all all2在哪里啊?哪里来的 啊?
就算你有这个2个js变量,也没必要加啊,除非你要用这个变量拼接其他的变量或者字符串,才+,你只是提供一个变量本身,你+他干什么?
<input type='button' name='goBackBtn' value='返回' onClick="var all = 100; goBackProd(all);" />
这样就可以啊
追问
这个input是在js文件中的,不是html中的,all是我声明的参数,就是想通过js来让这个按钮显示出来,并且执行goBackProd()方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你应该这么写:
<input type='button' name='goBackBtn' value='返回' onClick="goBackFunc()"/>
function goBackFunc(){
goBackProd(all,all2);
}
<input type='button' name='goBackBtn' value='返回' onClick="goBackFunc()"/>
function goBackFunc(){
goBackProd(all,all2);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询