Javascript iOS cordova应用程序中的Textarea只接受一次输入

Javascript iOS cordova应用程序中的Textarea只接受一次输入,javascript,ios,cordova,textarea,Javascript,Ios,Cordova,Textarea,具体来说,在安装应用程序后,可以通过软键盘输入一次来更改textarea值。这是一个单页应用程序,我在其中使用车把模板。以下是模板: <script id="comment-form-tpl" type="text/template"> <header class="bar bar-nav"> <a href="#" class="btn btn-link btn-nav pull-left"> Ca

具体来说,在安装应用程序后,可以通过软键盘输入一次来更改textarea值。这是一个单页应用程序,我在其中使用车把模板。以下是模板:

<script id="comment-form-tpl" type="text/template">
        <header class="bar bar-nav">
          <a href="#" class="btn btn-link btn-nav pull-left">
            Cancel
          </a>
          <h1 class="title">Add Comment</h1>
        </header>
        <div class="bar bar-standard bar-footer">
          <button type="button" id="save-comment" class="btn btn-block">Save</button>
        </div>
        <div class="content">
          <form class="input-group">
            <textarea id="comment-text" placeholder="Comment" rows="10" autofocus>{{{comment}}}</textarea> 
          </form>
        </div>
    </script>
我使用连接到Save按钮的javascript从textarea获取输入:

var CommentAddView = function() {
var Comment = new Object();

this.initialize = function() {
    this.$el = $('<div/>');
    this.$el.on('click', '#save-comment', this.saveComment);
    if (window.localStorage.getItem("comment")) {
        var text = window.localStorage.getItem("comment");
        text = text.replace(/<br>/g, "\n");
        this.setComment(text);
    }
    this.render();
};

this.render = function() {
    this.$el.html(this.template(Comment));
    return this;
};

this.setComment = function(text) {
    Comment.comment = text;
}; 

this.saveComment = function() {
    var text = $("#comment-text").val();
    text = text.replace(/(\r\n|\r|\n)/g, '<br>');
    window.localStorage.setItem("comment", text);
    router.load('');
};

this.initialize();
})

这一切只需一次就可以完美地工作——文本区显示在软键盘上,我可以输入一些内容,然后保存到本地存储中。 但是,编辑不起作用:如您所见,如果本地存储中有注释值,则会将其放在文本区域中。这是可行的,但值不能更改。我可以使用软键盘输入新文本,它将显示在文本区域中,但当我触摸Save时,我可以通过登录控制台验证$comment-text.val没有更改。与尝试删除类似:删除将从本地存储中删除注释的值。如果我尝试输入新注释,文本区域将显示为空白,并且我可以键入新注释,但是当我尝试保存时,$comment-text.val的值是第一条,应该是已删除的注释!如果我试着通过放线来解决这个问题 $comment-text.val;
那么$comment-text.val确实是空的。。。但它仍然无法通过键盘输入进行更改。如果我只是在桌面上的Safari中打开应用程序,一切都正常;因此,这是一个具体的iOS或可能只是iPhone的问题。我正在测试iOS 8.1.3。我已经在谷歌上搜索过了,尝试过一切似乎与之有着千丝万缕联系的东西,但我已经没有主意了。有人知道这里发生了什么吗?

终于知道了!我添加了一行:$comment-text.remove;到saveComment函数。因此:

this.saveComment = function() {
    var text = $("#comment-text").val();
    $("#comment-text").remove();
    text = text.replace(/(\r\n|\r|\n)/g, '<br>');
    window.localStorage.setItem("comment", text);
    router.load('');
};
每次显示注释表单时,我都会创建一个新的CommentAddView对象,但我最终意识到jQuery的作用就像上一个仍然存在一样。显式删除它可以解决这个问题