2013-03-04 13 views
8

Mit folgendem Code möchte ich "ONBLUR" von element id = "eg1" nur dann "ETWAS" machen, wenn das onblur Event nicht durch "ONCLICK" verursacht wurde Schaltfläche "Senden"Verhindern, dass onblur Code ausgeführt wird, wenn auf "Senden" geklickt wird

$(document).ready(function() { 
    $('#eg1').blur(function() { 
     if(!($("#SubmitBut").click())) { 
      //do something 
     } 
    }); 
    }); 

Für Beispiel: wenn der Benutzer Wert des „EG1“ Textfeld ein und klickt auf das nächste Textfeld ändert sich dann laufen die ETWAS Code DO muss, aber im Falle der Benutzer ändert Wert des dem „EG1“ Feld und klickt dann auf die Schaltfläche SUBMIT, dann darf der DO SOMETHING-Code nicht ausgeführt werden.

Ist das der richtige Weg? Bitte führen.

+2

kann man das nicht tun. Sie können nicht zwei Ereignisse gleichzeitig erfassen. –

+0

@Ravi: bitte helfen Sie mir mit dem richtigen Weg, um die Aufgabe zu erfüllen –

+0

@PalakTaneja: Bitte sehen Sie die Geige, die ich erstellt habe. Ich habe meine vorherige Antwort nach dem Lesen der Frage aktualisiert. – D3V

Antwort

27

blur Ereignis eines Elements löst, bevor click Ereignis eines anderen. Eine Möglichkeit besteht darin, mousedown und mouseup Ereignisse zu verwenden, um ein Flag umzuschalten, weil mousedown Ereignis eines Elements vor blur Ereignis eines anderen ausgelöst wird.

$("#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); 
    }); 
+0

Es hat geklappt ... danke ... :) –

+1

Das hat mir viel Zeit gespart, danke :-) – kuba

+0

@Diode bitte sag das funktioniert auch im Handy? Als mobile Funktionalitäten sind also Tipp- oder Klick-Funktionalitäten denkbar. –

0

Update:

$('input[type="submit"]').mousedown(test);

Werfen Sie einen Blick auf diese Geige JSFiddle to address your problem. Verwenden Sie die Konsole, um die Ereignisse anzuzeigen, die nach Ausführung bestimmter Aktionen ausgelöst und unterdrückt wurden.

Sie sollten den Ereignishandler unterdrücken, der an den Text gebunden ist, wenn click oder submit ausgeführt wird.

+0

Das ist nicht etwas, nach dem ich suche ..., wahrscheinlich hast du mein Problem nicht richtig verstanden ... Danke, dass du es versuchst. –

0
A trick - 

$(document).ready(function() { 
var flag = false; 
    $('#eg1').blur(function() { 
flag = true; 
     if(!($("#SubmitBut").click())) { 
if(flag) 
    return false;    
//do something 
     } 
    }); 
    }); 
+0

dies macht das gleiche, erfasst 2 Ereignisse gleichzeitig, was nicht erlaubt ist. –

Verwandte Themen