2013-02-27 94 views
1

这样做的正确方法是什么?正确的onclick格式

$chatterhtml .= '<span style="float:right;" > 
      <a href="javascript:void(0);" onClick="deletecmnt(this, "'.$val['id'].'", "'.BASE_URL.'");" title="Delete Chatter">x</a> 
       </span>'; 

我收到一个错误在Firefox SyntaxError: syntax error deletecmnt(this,但这个工作,直到我从输入文本到文本区域改变。

+0

什么是呈现的代码?我在这里只看到锚点,没有输入也没有textarea。 – gdoron 2013-02-27 06:21:43

+0

尝试$ val [“id”]喜欢它。仅将该单引号改为在此变量中加倍。 – 2013-02-27 06:23:36

+0

那么,_我会说的正确方法是AJAX,并使用事件监听器而不是'onclick'。 – elclanrs 2013-02-27 06:23:47

回答

1

问题是,您正在使用引号在HTML中的javascript 中分隔您的值。结果是这样的: onClick="deletecmnt(this, "0", "someurl.html");" 这是无效的。这里的onclick成为截断只是onClick="deletecmnt(this, ",其余的将被视为无效的HTML属性数据

相反,你应该这样做:

$chatterhtml .= "<span style=\"float: right;\">" . 
    "<a href=\"javascript:void(0);\" onclick=\"deletecmnt(this, '" . $val['id'] . "', '" . BASE_URL . "');\" title=\"Delete Chatter\">x</a>" . 
    "</span>"; 
+0

如果我还原为输入标记而不是textarea,这会起作用。如何解决? – 2013-02-27 06:27:09

+0

@Claude - 查看我的更新回答 – 2013-02-27 06:27:34

+0

如果可以的话,我会给你一个拥抱。谢谢! – 2013-02-27 06:39:20

1

你的结果HTML是无效的。你在双引号中有双引号未转义。试试这个

$chatterhtml .= '<span style="float:right;" ><a href="javascript:void(0);" onClick="deletecmnt(this, \''.$val['id'].'\', \''.BASE_URL.'\');" title="Delete Chatter">x</a></span>';