嗨我试图通过HTML onclick函数传递多个值.我使用Javascript来创建表
var user = element.UserName;
var valuationId = element.ValuationId;
$('#ValuationAssignedTable').append('<tr> <td><a href=# onclick="return ReAssign(\'' + valuationId + ',' + user + '\')">Re-Assign</a> </td> </tr>');
Run Code Online (Sandbox Code Playgroud)
但是在我的Javascript函数中,userName是未定义的,valuId是一个带有valuId和UserName组合的字符串
function ReAssign(valautionId, userName) {
valautionId;
userName;
}
Run Code Online (Sandbox Code Playgroud)
ppe*_*rka 33
如果valuationId和user是JavaScript的变量,源代码是纯静态的HTML,不以任何方式产生的,你应该尝试:
<a href=# onclick="return ReAssign(valuationId,user)">Re-Assign</a>
Run Code Online (Sandbox Code Playgroud)
如果它们是从PHP生成的,并且它们包含字符串值,请使用每个变量的转义引用,如下所示:
<?php
echo '<a href=# onclick="return ReAssign(\'' + $valuationId + '\',\'' + $user + '\')">Re-Assign</a>';
?>
Run Code Online (Sandbox Code Playgroud)
逻辑类似于问题中的更新代码,它使用JavaScript生成代码(可能使用jQuery?):不要忘记将转义引号应用于每个变量:
var user = element.UserName;
var valuationId = element.ValuationId;
$('#ValuationAssignedTable').append('<tr> <td><a href=# onclick="return ReAssign(\'' + valuationId + '\',\'' + user + '\')">Re-Assign</a> </td> </tr>');
Run Code Online (Sandbox Code Playgroud)
这个故事的寓意是
'someString(\''+'otherString'+','+'yetAnotherString'+'\')'
Run Code Online (Sandbox Code Playgroud)
将被评估为:
someString('otherString,yetAnotherString');
Run Code Online (Sandbox Code Playgroud)
而你需要:
someString('otherString','yetAnotherString');
Run Code Online (Sandbox Code Playgroud)
对于在JS中生成的html,请执行以下操作(我们使用单引号作为字符串包装器).每个参数都必须用单引号括起来,否则你的所有参数都会被认为是像functionName('a,b')这样的单个参数,现在它是一个值为a,b的单个参数.
我们必须使用字符串转义字符反斜杠()来用单引号关闭第一个参数,在它们之间给出一个分隔符逗号,然后用单引号启动下一个参数.(这是使用的魔法代码
'\',\'')
$('#ValuationAssignedTable').append('<tr> <td><a href=# onclick="return ReAssign(\'' + valuationId +'\',\'' + user + '\')">Re-Assign</a> </td> </tr>');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94610 次 |
| 最近记录: |