![](/img/trans.png)
[英]Prevent onclick code in submit button from executing if onblur returned false
[英]Prevent onblur code to execute if clicked on submit button
通過以下代碼,我希望僅在onblur事件不是由於提交按鈕上的“ONCLICK”引起時,才會在元素id =“eg1”的“ONBLUR”上“DO SOMETHING”。
$(document).ready(function() {
$('#eg1').blur(function() {
if(!($("#SubmitBut").click())) {
//do something
}
});
});
對於Eg:如果用戶更改“eg1”文本字段的值並單擊下一個文本字段,則必須運行DO SOMETHING代碼,但是如果用戶更改“eg1”字段的值,然后單擊SUBMIT按鈕,然后DO SOMETHING代碼不能運行。
這是正確的方法嗎? 請指導。
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);
});
更新:
$('input[type="submit"]').mousedown(test);
看看這個小提琴JSFiddle來解決你的問題 。 使用控制台查看在執行特定操作后觸發和抑制的事件。
您應該在執行click
或submit
時禁止綁定到文本的事件處理程序。
A trick -
$(document).ready(function() {
var flag = false;
$('#eg1').blur(function() {
flag = true;
if(!($("#SubmitBut").click())) {
if(flag)
return false;
//do something
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.