Javascript 回车后清除HTML输入并防止换行
我想在用户按enter键时提交文本框的值,最后清除输入。我尝试了以下代码:Javascript 回车后清除HTML输入并防止换行,javascript,jquery,html,Javascript,Jquery,Html,我想在用户按enter键时提交文本框的值,最后清除输入。我尝试了以下代码: input.keydown(function(e) { if (e.keyCode == 13) { e.preventDefault(); $(this).val(''); ... } 输入字段的文本按预期方式清除,但清除后,换行符仍输入到输入中。这意味着用户必须在每次发送消息后删除此换行符。除了设置一个间隔之类的黑客方法外,还有什么方法可以防止出现这个
input.keydown(function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$(this).val('');
...
}
输入字段的文本按预期方式清除,但清除后,换行符仍输入到输入中。这意味着用户必须在每次发送消息后删除此换行符。除了设置一个间隔之类的黑客方法外,还有什么方法可以防止出现这个新行吗?如果您使用AJAX提交,您可以在收集AJAX负载的数据后清除输入
如果您正在执行常规页面更改提交,则可以添加一个清除输入的
onbeforeuload
回调。按下enter键时只需返回false即可:
input.keydown(function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$(this).val('');
return false;
}
}
当然,这意味着您的最终用户将无法实际创建新行。在这种情况下,我通常有一个布尔变量,当按下/释放shift键时,该变量会发生变化。因此,如果shift已关闭,则不要提交,创建新行。在
keydown
事件中返回false
,这样可以防止事件冒泡,因此它实际上不会对文本框做任何操作
input.keydown(function(e) {
if (e.keyCode == 13) {
$(this).val('');
e.preventDefault();
return false;
}
}
没问题,注意我的新品建议。如果我遇到一个阻止我在文本框中换行的应用程序,我会非常恼火。如果你得到了你需要的一切,记得接受。谢谢你的提示,我会的。直到现在我才接受这个答案。