【问题标题】:Text Not Appearing In Container?文本没有出现在容器中?
【发布时间】:2014-01-12 10:46:56
【问题描述】:

我正在为聊天机器人编写一些代码,除了我在文本框中写的文本没有出现在我的容器中之外,一切都很好。以下是容器中出现的文本所涉及的所有代码:

<div id = "controls">
<textarea id = "textbox" placeholder = "Enter your message here..."></textarea>
<button id = "send">Send</button>
<br />
<input checked type="checkbox" id = "enter" /> 
<label>Send on enter</label>
</div>

$("#textbox").keypress(function(event){
if ( event.which == 13){
if ( $("#enter").prop("checked") ){

$("#send").click();
event.preventDefault();
}

$("#send").click(function(){

var username = "<span class =  'username' =>You: </span>";

var newMessage = $("#textbox").val();

$("#textbox").val("");

var prevState = $("#container").html();


if (prevState.length > 3){
prevState = prevState + "<br />";
}

$("#container").html(prevState + username + newMessage);


    }
    });

有谁知道为什么这段代码不起作用?

【问题讨论】:

  • 将您的代码放入就绪处理程序$(function(){ });

标签: javascript html containers chatbot


【解决方案1】:

因为没有缩进,所以很难看出来,但是你的函数有点乱。例如,您只在keypress 处理程序中分配click 处理程序。我清理了这样的代码:

$("#send").click(function (event) {
    send();
});

$("#textbox").keypress(function (event) {
    if (event.which == 13 && $("#enter").prop("checked")) {
        send();
    }    
});

function send() {
    var username = "<span class =  'username' =>You: </span>";
    var newMessage = $("#textbox").val();   
    $("#textbox").val("");    
    var prevState = $("#container").html();
    if (prevState.length > 3) {
        prevState = prevState + "<br />";
    }
    $("#container").html(prevState + username + newMessage);
}

这里有一个fiddle,你可以试试看:DEMO

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2013-11-17
    • 2022-11-09
    相关资源
    最近更新 更多