清除textarea会破坏其他JS功能

时间:2016-03-25 18:52:38

标签: javascript jquery ruby-on-rails coffeescript

我正致力于为将与用户交谈的计算机进行建模。控制台能够将消息打印到屏幕并重新加载,几乎没有问题。但是,我有一个按钮,当前设置为“清除”计算机屏幕上的内容 - 按下此按钮后,在重新加载页面之前,其他任何功能都无效。

我的work so far。按“pwr”或“发送”几次重新创建问题。按下后,两个按钮都会向屏幕打印一条消息。如果按“清除”,屏幕将按照我的喜好清除,但两个按钮都不会再向屏幕显示消息。 .val('')是否会使这个字段不可编辑?

# app/assets/javascripts/app.computress.coffee

App.Computress =
    clear: ->
        $("#hm_disp_txt").val('')
    greet: ->
        App.Computress.prints("Welcome!")
    prints: (str) ->
        $("#hm_disp_txt").append(str + "\n")

$(document).on "click", "[data-behavior~=computress-listen]", =>
    App.Computress.prints("ping received")

$(document).on "click", "[data-behavior~=computress-listen-clear]", =>
    App.Computress.clear()

$(document).on "click", "[data-behavior~=computress-power]", =>
    App.Computress.greet()

$(document).on "click", "[data-behavior~=computress-reload]", =>
    location.reload()


# home.html/erb
<div id="computress">
<div id="home_console">
    <textarea id="hm_disp_txt" readonly>Zzzzzz....</textarea>
</div>
    <div id="home_input">
    <div id="hm_inp_txt">></div>
    <input type="text" id="user_inp" placeholder="...say &quot;hello&quot;?">
    <%= link_to "send", "#", data: {behavior: "computress-listen"}, id: "talkbutton", class: "comptrss_mono_txt" %>
    <%= link_to "C", "#", data: {behavior: "computress-listen-clear"}, id: "clearbutton", class: "comptrss_mono_txt" %>
    <%= link_to "pwr", "#", data: {behavior: "computress-power"}, id: "pwrbutton", class: "comptrss_mono_txt" %>
    <%= link_to "reload", "#", data: {behavior: "computress-reload"}, id: "rldbutton", class: "comptrss_mono_txt" %>
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

我相信它是因为你正在混淆.append().val() ...尝试使用:

$("#hm_disp_txt").val( $("#hm_disp_txt").val() + "\n" + str );

而不是:

$("#hm_disp_txt").append(str + "\n");
您的prints()方法

中的