2011-12-12 87 views
0
var $contact_title = $('#contact_title').val(); 
var $contact_summary = $('#bbcode').val(); 

我retreive文本區域和文本字段,然後我這樣做:如何清空一個文本框,文本區域jQuery中

$contact_title.val(''); 
$contact_summary.val(''); 

他們的Nnone得到清空

HTML:

<form action="" method="get"> 
    <table border="0"> 
     <tr> 
      <td valign="top">Title:</td> 
      <td> 
       <input name="title" type="text" style="width:710px" id="contact_title" /> 
      </td> 
     </tr> 
     <tr> 
      <td valign="top">Message:</td> 
      <td> 
       <textarea name="request" cols="30" rows="20" id="bbcode"></textarea> 
      </td> 
     </tr> 
     <tr> 
      <td colspan="2" align="right" > 
       <input name="send" type="button" onClick="clicked()" value="Send" /> 
      </td> 
     </tr> 
    </table> 
</form> 

回答

3

您應該將元素存儲在變量中而不是值。

所以,你的代碼應該是:

var $contact_summary = $('#bbcode'); 
$contact_summary.val(''); 

順便說一句,這是一個很好的做法是使用unobtrusive javascript和點擊事件綁定你的HTML標記之外:

$('button').click(function() { //clear inputs }); 
3

你的問題是因爲你將變量設置爲元素的字符串值,而不是包含元素的jQuery對象。

試試這個:

var $contact_title = $('#contact_title'); 
var $contact_summary = $('#bbcode'); 
$contact_title.val(''); 
$contact_summary.val(''); 

或可替代;

$('#contact_title').val(''); 
$('#bbcode').val(''); 
1

你的變量($ CONTACT_TITLE )包含文字,而不是實際的DOM元素,從我可以告訴。如果將其更改爲

$('#contact_title').val(''); 

你會沒事的。

1

您必須使用您在從這些字段中獲取值時使用的語法。 嘗試:

$('#contact_title').val(''); 
$('#bbcode').val(''); 
1

在js小提琴更容易編寫/閱讀JavaScript代碼。這是一個答案。 http://jsfiddle.net/7RFYx/

jQuery(document).ready(function() { 
    var $contact_title = $('#contact_title'); 
    var $contact_summary = $('#bbcode'); 
    var $contact_summary_val = $contact_summary.val(); 
    var $contact_title_val = $contact_title.val(); 
    $contact_title.val(''); 
    $contact_summary.val(''); 
}); 
相關問題