文本没有出现在容器中?

时间:2014-01-12 10:46:57

标签: javascript html containers chatbot

我正在为Chatbot编写一些代码,除了我在文本框中写入的文本没有出现在我的容器中外,一切都很顺利。以下是容器中出现的文本中涉及的所有代码:

<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);


    }
    });

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

1 个答案:

答案 0 :(得分:0)

由于缺少缩进,很难看到,但你的功能有点混乱。例如,您只在click处理程序中分配keypress处理程序。我清理了这样的代码:

$("#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);
}

这是一个小提琴,所以你可以尝试一下:DEMO