Javascript 当关注特定输入时,如何防止表单提交?

Javascript 当关注特定输入时,如何防止表单提交?,javascript,jquery,forms,Javascript,Jquery,Forms,在JS/jQuery中,当一个字段关注表单提交时,如何防止表单提交,同时在所有其他输入字段上保持正常行为?尝试以下方法: $('#formID').on('submit', function(){ if ($('input:focus').length){return false;} }); 这是假设您尝试在不单击的情况下提交表单。因为当您单击提交时,输入有一个模糊事件并失去焦点 否则:那么您可能需要的就是您的答案。您可以使用以下选项: var prevent = false; $('

在JS/jQuery中,当一个字段关注表单提交时,如何防止表单提交,同时在所有其他输入字段上保持正常行为?

尝试以下方法:

$('#formID').on('submit', function(){
    if ($('input:focus').length){return false;}
});
这是假设您尝试在不单击的情况下提交表单。因为当您单击提交时,输入有一个模糊事件并失去焦点

否则:那么您可能需要的就是您的答案。

您可以使用以下选项:

var prevent = false;
$('input').focus(function() {
   prevent = true;
}).blur(function() {
   prevent = false;
});

$('form').submit(function() {
   if (prevent) {
      return false;
   }
});

参考资料

我想应该是
$('input:focus')。length
因为jquery总是返回一个对象,即使它是空的。@jcubic,这一点很好。已编辑,如果提交是通过
单击
,也指向您的答案。无论输入是否有焦点,它都不会提交表单。
$('form').submit(function(e) {
    e.preventDefault();
});