【问题标题】:jQuery stop working [duplicate]jQuery停止工作[重复]
【发布时间】:2017-03-20 07:30:36
【问题描述】:

当我点击添加时,'hello' 被添加到 textarea。但是当我手动更改 textarea 中的文本时,脚本停止工作。 你能解释一下原因吗?

$(document).ready(function() {
  $("p").click(function() {
    $('[name="text"]').append('hello');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

<textarea name="text" rows="10" cols="30"></textarea>
<p>add</p>

【问题讨论】:

  • $('[name="text"]').val('hello');
  • 这会将值更改为“你好”。我想附加“你好”
  • 是否希望在单击“添加”后在 textarea 中手动更改,然后删除所有文本,只有 hello 会替换那里?
  • 你想在 hello 后面加上 hello 吗?
  • @seeberg — $('[name="text"]').val(function(){ return this.value + 'hello'; });

标签: javascript jquery html


【解决方案1】:

您应该使用以下 jQuery::

$(document).ready(function() {
  $("p").click(function() {
    $('[name="text"]').val(function(){ return this.value.search(/\S/)!=-1 ? this.value + ' hello' : 'hello'; });
  });
});

如果已经在 textarea 中写入了某些内容,它将附加一个带有 'hello' 的空格,或者如果为空白,则只会附加 'hello'。

工作链接:https://jsfiddle.net/s5zwthe8/

【讨论】:

    【解决方案2】:

    请使用文本区域 ID 推送您的文本。喜欢

    <textarea name="text" rows="10" cols="30" id="appendtext"></textarea>
    

    在 Jquery 中放置代码:

    $('#appendtext').text("text");
    

    【讨论】:

    • 是的,我有同样的锅,但你已经得到了解决方案@rana ghosh,所以你可以使用相同的解决方案,但如果你找到简单的解决方案,那么你可以使用我的技巧。 Rana 的解决方案是基于 Rejex 的。
    猜你喜欢
    • 2014-04-21
    • 2012-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    相关资源
    最近更新 更多