如何在jquery中清空文本框,textarea

时间:2011-12-12 09:16:03

标签: javascript jquery

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

我检索文本区域和文本字段然后执行此操作:

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

他们都没有被清空

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>

5 个答案:

答案 0 :(得分:3)

您的问题是因为您将变量设置为元素的字符串值,而不是包含元素的jQuery对象。

试试这个:

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

或者;

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

答案 1 :(得分:3)

您应该将元素存储在变量中,而不是值。

所以,你的代码应该是:

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

顺便说一下,使用unobtrusive javascript并将你的点击事件绑定到html标记之外是一个好习惯:

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

答案 2 :(得分:1)

您的变量($ contact_title)包含文本,而不是实际的DOM元素。如果将其更改为

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

你没事。

答案 3 :(得分:1)

您必须使用与从这些字段中获取值时使用的语法相同的语法。 尝试:

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

答案 4 :(得分: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('');
});