2013-08-24 93 views
0

我有一個文本,其中用戶可以鍵入註釋,然後按回車鍵即可提交註釋,然後後textarea的文本應該被清除,佔位符應該會出現,所以我用這個工作功能jQuery的.VAL()不會在Firefox

<tr id="SC-1-Comment" style="background-color:white;"> 
<td colspan="2"> 
    <textarea id="id_COMMENT_to_POST-1" name="Comment" style="resize: none; vertical-align: middle;" placeholder="Leave a comment..." 
     onkeydown=" 
     if (event.keyCode == 13 && !event.shiftKey) 
     { 
      event.preventDefault(); 
      NEW_COMMENT('commentsinnerhtml-1', '1',document.getElementById('id_COMMENT_to_POST-1').value); 
      $('#id_COMMENT_to_POST-1').val(''); 
     } 
     "></textarea> 
</td> 

在Chrome和IE中的作品,但在Firefox,它只是最終結算的文本,並在文本區域中插入一個新的生產線,因此佔位符將不會出現有一個新行在textarea。

有什麼建議嗎?

+2

你使用jQuery。有沒有理由不能分配事件的jQuery方式?單獨的腳本與HTML? – Daedalus

+0

我試過了,它不起作用:/ – BOSS

+1

'@'在[ID選擇器](http://api.jquery.com/id-selector/)中不是有效的字符。如果這是一個視圖,也許是Razor,請包含由此產生的客戶端標記。但是,您也不需要選擇事件綁定的元素 - 「this.value」。 –

回答

0

我解決了它,它不是DOM或任何東西,我只是使用的setTimeout間隔,我不;噸知道爲什麼,但可能是Web瀏覽器只需要兩個操作間的毫秒數。 這裏是新的代碼

<tr id="[email protected]_ID-Comment" style="background-color:white;"> 
<td colspan="2"> 
    <textarea id="[email protected]_ID" name="Comment" style="resize: none; vertical-align: middle;" placeholder="Leave a comment..." 
     onkeydown=" 
     if (event.keyCode == 13 && !event.shiftKey) 
     { 
      event.preventDefault(); 

      var post = document.getElementById('[email protected]_ID').value; 

      $('#[email protected]_ID').val(''); 

      setTimeout(function() { 
      NEW_COMMENT('[email protected]_ID', '@ep.POST_ID', post); 
      },100); 
     } 
     "></textarea> 
</td> 

+2

這就是爲什麼你應該讀的jQuery的基礎上,這是'$(文件)。就緒(函數(){});' –

+1

@Dorian_gd,怎麼會有幫助?文件準備好後,活動正在順利開展。 –

1

嘗試香草JavaScript方式,保持它的簡單好用。

document.getElementById("text-area-id").value = ''; 

無法想象爲什麼它不起作用。

+0

我試過這個,並沒有工作 – BOSS

+0

@BOSS「沒有工作」不是一個問題描述。告訴我們發生了什麼事,什麼沒有發生,以及收到了什麼錯誤消息。 – Daedalus

+0

http://jsfiddle.net/5akRg/1/適合我。也許你對DOM做錯了什麼?更多信息,請 – user2712640