2011-12-12 67 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(''); 
}); 
相关问题