2012-03-29 91 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()+"'")));