2015-04-05 93 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