我有一个基于标签的搜索表单(就像您在Facebook或S / O上看到的基于标签的文本框,您可以在其中输入单词并按下键盘上相应的分隔符键)
在我的网站上,您在文字字段中输入一个字词,然后按Enter键以“确认”或“接受”该关键字,这样您就可以输入另一个关键字。
问题是,即使您可能已经完成输入搜索查询,按Enter也不会提交表单(显然),因为e.preventDefault()已启用,所以我可以使用enter按钮接受/确认每个标签。
我想要做的是,如果他们没有输入任何(或任何新的)标签,则在他们按下输入时提交表格,而不是(虽然稍微)对我的用户不利。
我会试着用这张图片更清楚地解释一下:
这有可能吗?
答案 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();
}
}
});
我认为这就是你要找的东西