onclick传递数字和字符串

时间:2012-03-29 08:57:28

标签: javascript onclick

当我将一个字符串值放入onclick时,控制台会返回'Uncaught SyntaxError:Unexpected token ILLEGAL'?如果它只是一个数字,它可以正常工作,但如果它是一个字符串则不行!

代码:

document.getElementById("productMenu").innerHTML += "<div class=\"leftMenuItems\"    onclick=\"javascript:showResources(" + p_codes + ");\">" + p_codes + " - " + p_names + "</div>";

<div class="leftMenuItems" onclick="javascript:showResources(1234ABC);">Product Name</div>

4 个答案:

答案 0 :(得分:2)

你缺少引号

onclick="javascript:showResources('1234ABC');"

因为1234ABC是一个字符串,而数字不需要引号

答案 1 :(得分:1)

问题在于,如果不将参数包装在引号中,JavaScript就会查找同名变量。由于变量名不能以数字文字开头,因此您收到错误。仅数字将作为整数传递。

您应该使用以下内容:

<div class="leftMenuItems" onclick="javascript:showResources('1234ABC');">Product Name</div>

答案 2 :(得分:1)

试试这个,它对我有用。

在以下string.format中的quote中传递字符串: HttpUtility.HtmlEncode("'"+personnelPhotoList[j].name.Trim()+"'")

代码示例:

StringBuilder strPhotos = new StringBuilder();

strPhotos.Append(String.Format("<div class=\"div_employee_img\">
         <a href=\"#\" onclick=\"DeletePhoto({0}); return true;\"></a></div>,   
         HttpUtility.HtmlEncode("'"+personnelPhotoList[j].name.Trim()+"'")));

答案 3 :(得分:0)

不知怎的,它没有发布完整的代码,这里又是

strPhotos.Append(String.Format("<input type=\"button\" onclick = \"Delete({0}) return false;\", HttpUtility.HtmlEncode("'"+personnelPhotoList[j].name.Trim()+"'")));