如何使用jquery清除textarea?

时间:2013-08-12 22:03:23

标签: javascript jquery

我有以下内容:

<div class="tab-pane" id="message">
      <textarea rows="4" cols="50" id="send_message" placeholder="Enter text ...">  </textarea>
      <a href="#message" class="btn btn-large btn-info"  data-toggle="tab">OK</a>
      <a href="#message" class="btn btn-large btn-info"  data-toggle="tab">Cancel</a>

</div>

我想点击取消按钮时清除textarea内容。我有:

$('#message').on("click", "a", function(){
    if($(this).is(":contains(Cancel)")) {

      $("#send_message")(
                  function(){
                  $(this).val('');

                }
                );

    } 
    else if($(this).is(":contains(OK)"))  {
                ......
    }
});

但这没有做任何事情。我该如何解决这个问题。

4 个答案:

答案 0 :(得分:6)

您可以使用:

$('#message').on("click", "a", function () {
    if ($(this).is(":contains(Cancel)")) {
        $("#send_message").val('');
    } else if ($(this).is(":contains(OK)")) { // other code

    }
});

演示 here

在您使用选择器$("#send_message")的代码中,您不能在此之后添加function。您在“错误放置”功能中引用的$(this)已经“拥有”通过使用id选择器。因此,我使用了您的想法并更正了代码中的一些内容以使其正常工作。

答案 1 :(得分:2)

我认为您的行中存在错误。它应该只是:

$("#send_message").val("")

答案 2 :(得分:1)

这是一个可以满足您需求的小提琴。 http://jsfiddle.net/PsWHJ/

<div class="tab-pane" id="message">
      <textarea rows="4" cols="50" id="send_message" placeholder="Enter text ...">  </textarea>
      <a href="#message" class="btn btn-large btn-info"  data-toggle="tab">OK</a>
      <a href="#message" class="btn btn-large btn-info"  data-toggle="tab">Cancel</a>
</div>


$('a','#message').on('click',function(){
    if($(this).text() === 'OK'){
        alert('Process Form');
    }else{
        $('#send_message').val("");
    }
});

答案 3 :(得分:1)

还有另一种方式......

$('#message').on("click", "a", function () {
    var jqEl = $(this);
    if (jqEl.text() == "Cancel")) {
        jqEl.prevAll('textarea').val('');
    } else if (jqEl.text() == "OK") { 
         //Do other stuff...
    }
});

希望有所帮助