| 

.NET C# Java Javascript Exception

4
Hallo liebe Codekicker gemeinde.
Ich habe einen Link hinter dem ein Div mit Hintergrundbild sitzt, welches auf ein jquery Tab verweist:
<a href="#showSummary"> 
<div style="background:url(/nextbutton.png) no-repeat;">
</div>
</a>


Nun würde ich gerne unterdrücken, dass wenn der Rückgabewert einer bestimmten Funktion false ist die "Weiterleitung" unterdrückt wird.

also sowas wie:

function test(){
if (bedingung1) {return true;}
else {return false;}
}


Und dann der Aufruf in der onclick Funktion des "<a":

<a href="#showSummary" onclick="return test();"> 
<div style="background:url(/nextbutton.png) no-repeat;">
</div>
</a>


Leider klappt das nicht so wie ich mir das gedacht habe und er leitet trotz "false"-Rückgabewert fröhlich weiter. Wo genau liegt denn da mein Denkfehler?!

Danke im Voraus

Stift
News:
11.08.2011
4-Farben-Stift 165 1 6
3 Antworten
3
Schonmal sowas probiert:

<a href="#showSummary" onclick="validateData(); return false;">
<div style="background:url(nextbutton.png) no-repeat;">
</div>
</a>


Einfach Global erstmal die weiterleitung verhindern.



Oder was du noch machen kannst ist, in der jQuery-Function die beim Event ausgelöst wird, einfach die Function starten.

Welches Plugin nutzt du denn davor? Tabs von jQuery-Tools?:
EVENTS:

onBeforeClick Before a tab is clicked. The second argument is the index number of the tab to be clicked.

onClick After a tab is clicked. The second argument is the index number of the tab being clicked.
11.08.2011
spiike 170 1 7
spiike 170 1 7
Jup das ist Tabs aus den jquery Tools.
4-Farben-Stift 11.08.2011
2
Füg folgende Anweisung in den "false"-Zweig ein:

event.preventDefault ? event.preventDefault() : event.returnValue = false;

Diese sollte verhindern, das der default-Handler des Objects abgearbeitet wird. Der Code Funktioniert sowohl für den IE als auch für alle moderenen Browser.

Nachtrag:

Hier nun das vollständige Beispiel welches sowohl im IE als auch im Firefox funktioniert:

<a href="index.html" onclick="javascript:fnClick(event,0);">broken</a>
<a href="index.html" onclick="javascript:fnClick(event,1);">work</a>
<script>
function fnClick(event,id){
if(id === 0){
var event = event || window.event;
event.preventDefault ? event.preventDefault() : event.returnValue = false;
return false;
}
}
</script>

Beispiel: http://jsfiddle.net/tjmLf/4/
11.08.2011
Floyd 14,6k 3 9
Floyd 14,6k 3 9
1
Danke Floyd für deine schnelle Antwort, aber irgendwie will es trotzdem nicht ganz:
Zum Testen habe ich die validateError auf 1 gesetzt.
Die Funktion:
function validateData(){
var validateError = 1;

if (validateError == 0 )
{
nextStep('6');
copyValues();
return true;
}
else {
alert ("You´ve got error in your form");
event.preventDefault ? event.preventDefault() : event.returnValue = false;
return false;
}
}


Der Aufruf:
<a href="#showSummary" onclick="return validateData();">
<div style="background:url(nextbutton.png) no-repeat;">
</div>
</a>
11.08.2011
4-Farben-Stift 165 1 6
Hab meinen Beitrag aktualisiert und um ein voll funktionsfähiges Beispiel ergänzt.
Floyd 11.08.2011

Stelle deine Javascript-Frage jetzt!