1

我有以下内容:

<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>

单击取消按钮时,我想清除文本区域的内容。我有:

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

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

                }
                );

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

但这无济于事。我怎样才能解决这个问题。

4

4 回答 4

6

你可以使用这个:

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

    }
});

演示在这里

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

于 2013-08-12T22:06:04.600 回答
2

我认为你的行中有一个错误。它应该只是:

$("#send_message").val("")
于 2013-08-12T22:06:27.827 回答
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("");
    }
});
于 2013-08-12T22:15:32.493 回答
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...
    }
});

希望能帮助到你

于 2013-08-12T23:00:12.130 回答