javascript - 输入后清除 HTML 输入并防止换行

标签 javascript jquery html

我想在用户按回车键时提交文本框的值,最后清除输入。我尝试了这段代码:

input.keydown(function(e) {
    if (e.keyCode == 13) {
        e.preventDefault();
        $(this).val('');
        ...
    }

输入字段的文本按预期清除,但清除后,换行符仍然输入到输入中。这意味着用户每次发送消息后都必须删除此换行符。除了设置间隔等黑客方法之外,还有其他方法可以防止出现换行符吗?

最佳答案

按下回车键时返回 false:

input.keydown(function(e) {
    if (e.keyCode == 13) {
        e.preventDefault();
        $(this).val('');
        return false;
    }
}

当然,这意味着您的最终用户将无法实际创建新行。在这种情况下,我通常有一个 bool 变量,当按下/释放 Shift 键时该变量会发生变化。因此,如果 Shift 向下,则不要提交,而是换行。

关于javascript - 输入后清除 HTML 输入并防止换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16166752/

相关文章:

javascript - 元素不会在窗口更改时向后滑动

javascript - jQuery ajax 无法检索 json

javascript - 等待元素显示给用户

html - 将文本拖放到 2 行上 - Ionic 1

javascript - 在另一个元素悬停时停止动画

javascript - Controller 未向 Angular JS Spa 注册

javascript - Jquery 输入 ID 数组检测更改

jquery - 在 jQuery 中选择下一张图像

jQuery 无法点击单选按钮

jquery - Bootstrap 导航栏折叠按钮未显示在特定设备分辨率上