1

我有一个基于标签的搜索表单(就像您在 Facebook 或 S/O 上看到的基于标签的文本框,您可以在其中输入单词并按键盘上相应的分隔键)

在我的网站上,您在文本字段中输入一个单词,然后按 Enter 键以“确认”或“接受”该关键字,这样您就可以输入另一个关键字。

这样做的问题是,即使您可能已经完成输入搜索查询,但按 Enter 不会提交表单(显然),因为 e.preventDefault() 已启用,因此我可以使用输入按钮接受/确认每个标签.

我想要做的是,如果他们没有输入任何(或任何新的)标签,则在他们按 Enter 键时提交表单,而不是(尽管有点)不方便我的用户。

我将尝试用这张图片更清楚地解释它: 在此处输入图像描述

这可能吗?

4

2 回答 2

1

我的第一个建议是检查状态。例如,当他们在选择标签的过程中,您可以将类添加.tagging到元素中。当他们按下时,Enter您可以检查.tagging该类是否在元素上。如果是,则完成标记选择并删除该类。如果该类不在元素上,则意味着它们没有标记,因此您可以继续提交更改。

$("#tags").on("keypress", function(e){
    e.preventDefault();
    if ( e.which === 13 ) {
        if ( $(this).is(".tagging") ) {
            /* Add tag, remove class */
        } else {
            /* Submit data */
        }
    }
});
于 2012-05-27T05:41:08.030 回答
1
$("#tags").keyup( function(e){
    if ( e.which === 13 ) {
        if ( /*value is not empty*/ ) { //add tag             
        } else {
            $("#formID").submit();
        }
    }
});

我认为这就是你要找的

于 2012-05-27T05:57:07.747 回答