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+"\');\"不行,应该怎么写? 展开
 我来答
magicjoker
2013-06-18 · TA获得超过4097个赞
知道大有可为答主
回答量:1400
采纳率:93%
帮助的人:511万
展开全部
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)} 就可以了
zhaoapk
2013-06-18 · TA获得超过3771个赞
知道大有可为答主
回答量:1343
采纳率:40%
帮助的人:1612万
展开全部

我在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 · 知道合伙人互联网行家
扎俊
知道合伙人互联网行家
采纳数:366 获赞数:1525
涉猎C#;C++,vb,vb script,asp,PHP,JS,w3c,网站运营、推广等

向TA提问 私信TA
展开全部
onClick=\"javaScript:goBackProd(\'"+all+"\');\"
改成:onClick="javaScript:goBackProd(all);“
在使用javascript:声明时,其后面的文字会直接被当做代码解释执行的。
追问
可是我的这个方法是在js文件里的,就是想通过js来控制这个button的显示,然后执行goBackProd方法
追答

测试文件,参数是可以传入的。

是不是处理参数的过程有问题


已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangxibaiyi
2013-06-18 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14412

向TA提问 私信TA
展开全部
如果你这条代码是直接的html代码,而不是其他脚本输出这条代码的话
那你弄那么多反斜杠干什么?而且是乱用
例外,你在onclick事件中使用了+号连接符,目的是连接一些变量,是吧
那你的2个变量:all all2在哪里啊?哪里来的 啊?
就算你有这个2个js变量,也没必要加啊,除非你要用这个变量拼接其他的变量或者字符串,才+,你只是提供一个变量本身,你+他干什么?

<input type='button' name='goBackBtn' value='返回' onClick="var all = 100; goBackProd(all);" />
这样就可以啊
追问
这个input是在js文件中的,不是html中的,all是我声明的参数,就是想通过js来让这个按钮显示出来,并且执行goBackProd()方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2013-06-18 · TA获得超过260个赞
知道小有建树答主
回答量:85
采纳率:0%
帮助的人:62.8万
展开全部
你应该这么写:
<input type='button' name='goBackBtn' value='返回' onClick="goBackFunc()"/>

function goBackFunc(){
goBackProd(all,all2);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式