输入键javascript按键不工作
我有一点Javascript,它的最终目标是每当按下“enter”键时,一条消息就会附加到我的无序列表中。现在,按下的任何键都会被追加,而不仅仅是“回车”键。例如,如果我键入“Y”,则会在按下任何其他按钮时提交。显然,我所需要的是通过“回车”提交到文本框中的数据 我的HTML:输入键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
<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键,这将作为空行提交。再次感谢!编辑了答案,请立即签出:)