点击进入时提交基于标签的表格

时间:2012-05-27 05:31:26

标签: jquery

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

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

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

我想要做的是,如果他们没有输入任何(或任何新的)标签,则在他们按下输入时提交表格,而不是(虽然稍微)对我的用户不利。

我会试着用这张图片更清楚地解释一下: enter image description here

这有可能吗?

2 个答案:

答案 0 :(得分: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 */
        }
    }
});

答案 1 :(得分:1)

$("#tags").keyup( function(e){
    if ( e.which === 13 ) {
        if ( /*value is not empty*/ ) { //add tag             
        } else {
            $("#formID").submit();
        }
    }
});

我认为这就是你要找的东西