Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
输入键javascript按键不工作_Javascript_Submit_Message_Enter_Keycode - Fatal编程技术网

输入键javascript按键不工作

输入键javascript按键不工作,javascript,submit,message,enter,keycode,Javascript,Submit,Message,Enter,Keycode,我有一点Javascript,它的最终目标是每当按下“enter”键时,一条消息就会附加到我的无序列表中。现在,按下的任何键都会被追加,而不仅仅是“回车”键。例如,如果我键入“Y”,则会在按下任何其他按钮时提交。显然,我所需要的是通过“回车”提交到文本框中的数据 我的HTML: <ul id="messagebox" > </ul> <div> <input type="text" id="typetextbox" maxlength="120

我有一点Javascript,它的最终目标是每当按下“enter”键时,一条消息就会附加到我的无序列表中。现在,按下的任何键都会被追加,而不仅仅是“回车”键。例如,如果我键入“Y”,则会在按下任何其他按钮时提交。显然,我所需要的是通过“回车”提交到文本框中的数据

我的HTML:

<ul id="messagebox" >
</ul>

<div>
    <input type="text" id="typetextbox" maxlength="120" autocomplete="off" />
    <button type="submit" id="submit" onblur="submit"> </button>
</div> 
下面是用于附加消息的Javascript:

$(document).ready(function(){

    $('#submit').click(function(){
        var message = $('#typetextbox').val();
        $('#messagebox').append(message + "<br/>");
        $("#typetextbox").val("");  
    });
});
$(文档).ready(函数(){
$(“#提交”)。单击(函数(){
var message=$('#typetextbox').val();
$('#messagebox')。追加(message+“
”); $(“#typetextbox”).val(“”); }); });

为什么不选择Enter按钮提交呢?

keyCode
实际上是事件的一个属性,因此您必须使用
e.keyCode
。 您还调用了
if(keyCode==13):右括号后面的分号(
)立即结束if语句,因此始终执行下一行代码

以下是正确的代码:

$('#typetextbox').keypress(function (e){
    if(e.keyCode == 13 ) $('#submit').click();
});
$('#submit').click(function() {
    var message = $('#typetextbox').val();

    if (message.replace(/ /g, '')) // If the text is not empty (e.g. nothing or only spaces)
        $('#messagebox').append( $('<li>', {text: message}) );
    $("#typetextbox").val("");  
});
要将消息附加到
ul
元素,应首先创建
li
元素,然后将其附加到
ul
元素

以下是正确的代码:

$('#typetextbox').keypress(function (e){
    if(e.keyCode == 13 ) $('#submit').click();
});
$('#submit').click(function() {
    var message = $('#typetextbox').val();

    if (message.replace(/ /g, '')) // If the text is not empty (e.g. nothing or only spaces)
        $('#messagebox').append( $('<li>', {text: message}) );
    $("#typetextbox").val("");  
});
$(“#提交”)。单击(函数(){
var message=$('#typetextbox').val();
if(message.replace(//g',)//如果文本不是空的(例如,没有或只有空格)
$('#messagebox')。追加($('
  • ,{text:message})); $(“#typetextbox”).val(“”); });
  • 顺便说一下,您不需要
    $(document).ready
    函数来执行此操作。只需将脚本放在dom中的textarea之后,它就可以正常工作了

    问题是:

    将html代码更新为

    <div>
        <input type="text" id="typetextbox" onkeypress="return keyPress(event)"  maxlength="120" autocomplete="off" />
        <button type="submit" id="submit" onblur="submit"> </button>
    </div>
    

    send函数包含更新消息框的代码

    我已经尝试过了,但仍然有相同的结果。我想知道它是否与另一段Javascript冲突?但我没想到会这样。有了这段代码,无论我输入什么都会被提交。谢谢你的编辑!谢谢你,马可!这起作用了。对于附带问题,您知道如何在未输入任何内容时禁用附加消息吗?至于现在,您可以按enter键,这将作为空行提交。再次感谢!编辑了答案,请立即签出:)