通过下面的代码,我希望仅当onblur事件不是由提交按钮上的"ONCLICK“引起时,才在元素id="eg1”的"ONBLUR“上”做一些事情“。
$(document).ready(function() {
$('#eg1').blur(function() {
if(!($("#SubmitBut").click())) {
//do something
}
});
});例如:如果用户更改“eg1”文本字段的值并单击下一个文本字段,则DO某些代码必须运行,但如果用户更改“eg1”字段的值,然后单击SUBMIT按钮,则DO某些代码不能运行。
这是正确的做法吗?请指点一下。
发布于 2013-03-04 15:37:35
一个元素的blur事件在另一个元素的click事件之前触发。因此一种方法是使用mousedown和mouseup事件来切换标志,因为一个元素mousedown事件在另一个元素的blur事件之前触发。
$("#eg1").on("blur", function(e){
if($("#submit").data("mouseDown") != true){
alert("DO SOMETHING");
}
});
$("#submit").on("mousedown", function(e){
$("#submit").data("mouseDown", true);
});
$("#submit").on("mouseup", function(e){
$("#submit").data("mouseDown", false);
});发布于 2013-03-04 15:22:42
更新:
$('input[type="submit"]').mousedown(test);
看一下这个小提琴JSFiddle to address your problem。使用控制台查看执行特定操作后触发和抑制的事件。
执行click或submit时,应禁止显示绑定到文本的事件处理程序。
发布于 2013-03-04 15:33:52
A trick -
$(document).ready(function() {
var flag = false;
$('#eg1').blur(function() {
flag = true;
if(!($("#SubmitBut").click())) {
if(flag)
return false;
//do something
}
});
});https://stackoverflow.com/questions/15196352
复制相似问题