我知道,这个问题可能是多余的,但通过计算器上几乎每一个相关的问题已经看了之后,我还没有能够使我的问题“走开。” 问题是这样的:
上的“进入”,提交,而不是创建一个新的行textarea的内容按键。
这是我与合作:
jQuery的(从这里过类似的问题的答案):
$('#message').keypress(function(e){
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13){
$('#form').submit();
}
});
该HTML:
<div class="message">
<form name="form" class="form" id="form" action="chatsendmesg.php" method="POST">
<textarea rows="2" name="message" id="message" class="message" placeholder="RM911 Chat" cols="26"></textarea>
<input id="submit" class="submit" type="submit" value="Send" name="submit">
</form>
即使有这样的代码中,“进入”按键还是创建一个新的行,而不是提交。 地球上的什么我不理解这里? 它是一个缺少的preventDefault
?
在此先感谢,蒂姆
该工程...
<html>
<head>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(function(){
$("#message").keypress(function(e){
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13){
$("#form1").submit();
}
});
});
</script>
</head>
<body>
<div id="message">
<form name="form1" class="form1" id="form1" action="chatsendmesg.php" method="post">
<textarea rows="2" name="message" id="message" class="message" placeholder="RM911 Chat" cols="26"></textarea>
<input id="submit1" class="submit1" type="submit" value="Send" name="submit1" />
</form>
</div>
</body>
</html>
preventDefault
不会起作用,因为对于一个textarea,默认操作是把字符(由击键表示)在文本区域。 也就是说,没有你的击键将使其在文本区域。
为了防止只有新线被输入到文本区,你需要停止传播keypress
事件,但只有当按下的键回车,这样的:
$("#void").keypress(function(e) {
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13){
$('#form').submit();
return false; // stop propagation of the keypress
}
return true;
});