2015-04-05 92 views
0

我正在使用XOXCO标记输入。如何防止输入键提交表单,但仍然允许输入工作?

这里是一个演示http://xoxco.com/projects/code/tagsinput/example.html

因此,为了完成一个标签,我有敲回车,但是当我按下回车键将其提交我的形式。

我可以使用此代码禁用整个表单的输入,但是我无法完成标记。

$("#form").keypress(function(e) { 
    //Enter key 
    if (e.which == 13) { 
    return false; 
    } 
}); 

所以我仍然需要进入工作,但我也需要它不提交表单,我不知道如何做到这一点。

回答

0

好吧,我解决了这个问题的情况下,任何人都运行到这里这个问题就是我没有。

$('form input').keydown(function (e) { 
     if (e.keyCode == 13) { 
      var inputs = $(this).parents("form").eq(0).find(":input"); 
      if (inputs[inputs.index(this) + 1] != null) {      
       inputs[inputs.index(this) + 1].focus(); 
      } 
      e.preventDefault(); 
      return false; 
     } 
    }); 
1

您需要防止输入印刷机的默认行为,即提交表单。例如...

$('#form').keypress(function(e){ 
    e.preventDefault(); // prevent form submission 
    // do stuff with the keypress 
    $('#form').submit(); // now, submit the form 
}); 
+0

您是否有更好的解释我将如何做到这一点。 – EliteViper777 2015-04-06 00:29:32

+0

以后提交表单?你应该可以在任何你想要的函数中调用$('#form')。submit()手动提交表单。如果需要,我可以用这些细节更新我的答案。 – rvalis 2015-04-06 00:33:39

+0

如果你可以更新你的答案,可能会有所帮助。 – EliteViper777 2015-04-06 00:37:14

0

,想到的第一件事是:

$('form').on('keypress keydown keyup', function(e) { 
    if (e.which == 13) { 
     //alert(e.which); 
     e.preventDefault(); 
     return false; 
    } 
}); 

https://jsfiddle.net/Lhujkub7/

+0

这不起作用。 – EliteViper777 2015-04-06 00:38:15

+0

你是对的!更新与工作示例。信誉去由Dave Paroulek http://stackoverflow.com/a/9891024/1477388这个答案 – user1477388 2015-04-06 13:29:24