Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从'中排除表单按钮;onblur';事件,JavaScript_Javascript_Jquery_Forms_Onclick_Onblur - Fatal编程技术网

从'中排除表单按钮;onblur';事件,JavaScript

从'中排除表单按钮;onblur';事件,JavaScript,javascript,jquery,forms,onclick,onblur,Javascript,Jquery,Forms,Onclick,Onblur,我有一个表单,它对大多数输入字段使用onblur,如下所示: <form> <input name="..." id="..." onblur="myFunction(name)" /> <button id="..." onclick="submit()">Submit</button> </form> 提交 表单通过onblur事件实时验证某些字段(即用户名、电子邮件),但当用户单击submit按钮时,会进行相同的检查 当前,

我有一个表单,它对大多数输入字段使用
onblur
,如下所示:

<form>
<input name="..." id="..." onblur="myFunction(name)" />
<button id="..." onclick="submit()">Submit</button>
</form>

提交
表单通过
onblur
事件实时验证某些字段(即用户名、电子邮件),但当用户单击submit按钮时,会进行相同的检查

当前,当用户单击submit按钮时,首先触发
onblur
事件,然后触发按钮中的
onclick
事件-从而运行检查两次并浪费额外的几秒钟

是否有任何方法覆盖
onblur
方法以排除用户按下提交按钮时发生的模糊

我在想一个简单的
如果(/*按钮被点击*/){}
myFunction()
中,但是我不知道如何检查按钮点击。从目前的表现来看,在模糊之后,按钮点击才被注册

提前感谢。

您可以这样做:

HTML


“浪费额外的几秒钟”-您在以秒为单位的
myFunction()
中做什么?Ajax调用do数据库检查用户名可用性。也许不是几秒钟,但足够让我烦恼的时间。进行验证时,会出现一个风车。按下submit按钮时,会出现相同的风车。因此,用户看到:pinwheel->输入确认(非常简短)->pinwheel->重复输入确认。它看起来很难看,很油滑。你误解了这个问题。原始代码在submit按钮上没有模糊处理程序。问题是,如果在单击提交按钮之前有焦点,如何防止其他输入上的模糊处理程序运行。这可能会起作用,但可能是一个愚蠢的问题:在第一种方法中,如何获取导致模糊的事件(特别是键码)以及发生模糊的字段的名称?是的,这样就可以了!谢谢在onclick部分缺少一个方括号,否则就太好了。我需要特别的
e.target.id
,但除此之外,我需要现场!
<form>
   <input type="text" name="name" id="id" />
   <input type="submit" />
</form>
$(document).on('blur', 'input:not([type="submit"])', function(e) {
   var key = e.keyCode;  // the key pressed
   var elem = e.target;  // the element blurred 
   myFunction(name);
});

$(document).on('click', 'input[type="submit"]', function() {
   submit();
});