在javascript函数中传递多个参数
passing more than one argument in javascript function
我在Php中有一个预先编写的代码,其中JavaScript函数被称为
echo "<a href='javascript:submittemplate(".$temprow['templateid'].");'>".$temprow["templatename"]."</a></td>";
脚本是:
<script>
function submittemplate(templateid)
{
window.document.location.href = 'index.php?module=Users&action=UsersAjax&file=TemplateMerge&templateid='+templateid;
}
</script>
现在我想在这个函数中再传递一个参数。
我做的是:
echo "<a href='javascript:submittemplate(".$temprow['templateid'].",".$mode.");'>".$temprow["templatename"]."</a></td>";
<script>
function submittemplate(templateid,mode)
{
alert("anything");
window.document.location.href = 'index.php?module=Users&action=UsersAjax&file=TemplateMerge&templateid='+templateid;
}
</script>
Later代码不起作用。我做错了什么?
如果mode
变量是string
,则会引发错误。
例如alert(myString Is Here) // throw error
应该是alert("myString Is Here");
所以你必须添加报价如下:
echo "<a href='javascript:submittemplate(".$temprow['templateid'].",'"".$mode."'");'>"
注意'"
我猜您会因为输出的值而产生无效的Javascript语法。打开浏览器的Javascript控制台来调试Javascript并查看任何错误。
当将PHP值输出到Javascript时,应该确保它们不会破坏语法。最好的方法是对它们进行JSON编码,因为JSON是有效的Javascript。正如您也应该用HTML对您的值进行HTML编码一样:
<a href="javascript:submittemplate(<?php echo htmlspecialchars(json_encode($temprow['templateid']), ENT_COMPAT); ?>, <?php echo htmlspecialchars(json_encode($mode), ENT_COMPAT); ?>);"><?php echo htmlspecialchars($temprow["templatename"]); ?></a></td>
由于这是一个非常不可读的单行,您应该考虑使用Javascript将onclick
事件绑定到链接,而不是使用href="javascript:"
目标。看见http://en.wikipedia.org/wiki/Unobtrusive_Javascript#Separation_of_behavior_from_markup.
- 不要使用javascript:协议,使用onclick并返回false
- 为什么要使用JavaScript
<a href="'index.php?module=Users&action=UsersAjax&file=TemplateMerge&templateid=<?PHP echo $temprow['templateid']; ?>">.....
您需要在参数周围使用转义双引号
...submittemplate('"".$temprow['templateid']."'");'>".
因为您正在传递字符串
相关文章:
- 在url参数javascript中存储键值对列表
- 可选参数 JavaScript 技巧
- 如何计算参数 JavaScript 中的条件
- 未定义的变量作为函数参数 javascript
- 使用带有参数 Javascript 的函数更改全局变量
- 如何在参数JavaScript中更改对象属性
- 如何使用参数(javascript)调用Date构造函数
- 作为参数(javascript)传递的函数的系统唯一id
- Backbone.BabySiter内部参数-Javascript Scope
- 未定义函数参数-Javascript
- 谷歌地图api v3-IE7-main.js错误-无效参数(javascript)
- 通过onclick函数发送参数-Javascript
- 传递属于对象的匿名方法作为参数-Javascript
- 未捕获类型错误:没有足够的参数Javascript游戏
- 缺少)参数Javascript错误
- 在函数参数Javascript上使用toSentenceCase
- 跳过函数参数javascript
- 如何在调用不带括号的函数时传递参数 [Javascript]
- 如何传递多个参数javascript
- Foreach键和值输入参数javascript