2013-02-27 52 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>';