为什么我的功能,填充textarea,只在第一次工作?

时间:2014-06-16 05:23:18

标签: javascript jquery html html5

使用Javascript:

function editQuestion() {
  $("body").on("click", ".edit_question", function(event) {
    $(this).closest("form").find("textarea").text("sample text");
    event.preventDefault();
  });
}

$(document).ready(function() {  
  editQuestion();
});

HTML:

<form>
  <textarea>ormar</textarea>
  <div class="actions">
    <a href="#" class="edit_question">Cancel</a>
  </div>
</form>

点击.edit_question链接启动该功能后,第一次所有内容都按预期运行。

但点击多次(手动删除textarea内容后)并没有做任何事情,为什么会这样?

3 个答案:

答案 0 :(得分:4)

.text()仅更改textarea的初始值,因为从元素的内容(<textarea>Initial value</textarea>)读取初始值。

修改值后,当前值将存储在DOM元素的value属性中。修改textarea后更改初始值没有任何效果。

这就是为什么你应该使用.text()的{​​{3}} intead。

答案 1 :(得分:1)

Updated Demo Original Demo

进行比较

如果输入,请使用.val()代替.text()

检查一下,

$(document).ready(function () {
    $(document).on("click", ".edit_question", function (event) {

        $(this).closest("form").find("textarea").val('sample text');
        event.preventDefault();
    });
});

注意: .text()方法不能用于表单输入或脚本。

答案 2 :(得分:0)

尝试使用.val()方法而不是textarea的

从文档页面 .text()方法不能用于表单输入或脚本。要设置或获取input或textarea元素的文本值,请使用.val()方法。要获取脚本元素的值,请使用.html()方法。

链接: http://api.jquery.com/text/