我想在用户按Enter键时提交文本框的值,最后清除输入。我试过这段代码:
input.keydown(function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$(this).val('');
...
}
输入字段的文本按预期清除,但清除后,仍会在输入中输入换行符。这意味着用户必须在每次发送消息后删除此换行符。有没有办法阻止这个换行符出现,除了设置间隔等黑客方法?
答案 0 :(得分:4)
按下Enter键时返回false:
input.keydown(function(e) {
if (e.keyCode == 13) {
e.preventDefault();
$(this).val('');
return false;
}
}
当然这意味着您的最终用户将无法真正创建新行。在这种情况下,我通常有一个布尔变量,当按下/释放shift键时它会改变。因此,如果班次下降,请不要提交,换个新行。
答案 1 :(得分:0)
如果您使用AJAX提交,则可以在收集AJAX有效负载的数据后清除输入。
如果您正在进行常规页面更改提交,则可以添加清除输入的onbeforeunload
回调。
答案 2 :(得分:0)
在false
事件中返回keydown
,这可以防止事件冒泡,因此它实际上从未对文本框执行任何操作。
input.keydown(function(e) {
if (e.keyCode == 13) {
$(this).val('');
e.preventDefault();
return false;
}
}