2012-03-29 98 views
2

当我把一个字符串值放到onclick控制台返回'未捕获的SyntaxError:意外的令牌非法'?它工作正常,如果它只是一个数字,但不是它的一个字符串!onclick传递数字和字符串

代码:

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> 

回答

2

你缺少引号

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

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

+0

Doh!有时显而易见的是不明显!现在工作!非常感谢 – 2012-03-29 09:07:19

1

的问题是,如果你不将参数封装在引号中,JavaScript正在寻找一个同名的变量。由于变量名称不能以数字文字开头,因此您收到错误。仅数字将作为整数传入。

你应该使用下列内容:

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

感谢您提供更详细的解释,有一天我会在这一切中变得更好......有一天! – 2012-03-29 09:16:23

1

试试这个,它为我工作。在下面的String.Format报价的内部

传递字符串: 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()+"'"))); 
0

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

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