输入后清除HTML输入并阻止新行

时间:2013-04-23 10:14:49

标签: javascript jquery html

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

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

输入字段的文本按预期清除,但清除后,仍会在输入中输入换行符。这意味着用户必须在每次发送消息后删除此换行符。有没有办法阻止这个换行符出现,除了设置间隔等黑客方法?

3 个答案:

答案 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;
    }
}