Forum Doku Wiki Blog

Forumsarchiv 2005, August
funktionsabfrage unterbinden...

archivierte Beiträge lesen

  1. (JAVASCRIPT) funktionsabfrage unterbinden... von Felix, 31. 08. 2005, 12:32

funktionsabfrage unterbinden...

Der folgende Beitrag wurde am 31. 08. 2005, 12:32 Uhr von Felix veröffentlicht.

um mich ein wenig einzuarbeiten, hab ich mal einen simplen leet-translator gebastelt. das sieht dann aus wie folgt:

<script type="text/javascript">

function remember() {

norm = document.Eingabe.Feld.value;
document.Eingabe.Feld1.value = norm;
}

function translator(neu,seek,destroy) {

if (neu.length > 0) {

var  leet = neu.toLowerCase();

while(leet.indexOf(seek)>-1) {

ort= leet.indexOf(seek);
leet = (leet.substring(0, ort) + destroy
+ leet.substring((ort + seek.length), leet.length));
}
document.Eingabe.Feld.value=leet;
}
else{

alert ("Bitte geben Sie einen zu übersetzenden Text ein!");

}
}


function ausgabe() {

aleet = document.Eingabe.Feld.value;
anorm = document.Eingabe.Feld1.value;

document.Eingabe.Feld.value = anorm;
document.Eingabe.Feld1.value = aleet;

}

</script>

<div align="center">

    <form name="Eingabe">
    <textarea rows=5 cols=40 name="Feld">Geben Sie doch etwas ein...</textarea>
      <br><br>
    <input type="button" value="OK" onClick="remember();
translator(document.Eingabe.Feld.value,'you','j00');
translator(document.Eingabe.Feld.value,'cker','xor');
translator(document.Eingabe.Feld.value,'cks','x');
translator(document.Eingabe.Feld.value,'a','4');
translator(document.Eingabe.Feld.value,'e','3');
translator(document.Eingabe.Feld.value,'i','!');
translator(document.Eingabe.Feld.value,'l','1');
translator(document.Eingabe.Feld.value,'o','0');
translator(document.Eingabe.Feld.value,'s','$');
translator(document.Eingabe.Feld.value,'t','7');
ausgabe()">
        <br><br>

    <textarea rows=5 cols=40 name="Feld1"></textarea>
    </form>

</div>

das problem dazu liegt in diesem Stück:

else{

alert ("Bitte geben Sie einen zu übersetzenden Text ein!");

}

wie man sieht wird die funktion mehrmals hintereinander aufgerufen, und damit auch der alert. der alert sollte aber nur einmal kommen.
hat irgendjemand einen vorschlag wie ich das bewerkstelligen könnte?

funktionsabfrage unterbinden...

Der folgende Beitrag wurde am 31. 08. 2005, 12:44 Uhr von Thomas J.S. veröffentlicht.

Hallo,

> wie man sieht wird die funktion mehrmals hintereinander aufgerufen, und damit auch der alert. der alert sollte aber nur einmal kommen.
> hat irgendjemand einen vorschlag wie ich das bewerkstelligen könnte?

Versuche es mit einer boolschen Abfrage, so in etwa:

> <script type="text/javascript">

var bAlert = true;

> function remember() {
...
else{
if(bAlert) {
alert ("Bitte geben Sie einen zu übersetzenden Text ein!");
bAlert = false;
}


Grüße
Thomas

funktionsabfrage unterbinden...

Der folgende Beitrag wurde am 31. 08. 2005, 13:03 Uhr von Felix veröffentlicht.

Vielen Dank, hast sehr geholfen...

habe aber noch eine bessere methode gefunden (dank dir):

<script type="text/javascript">

function leer() {

text=document.Eingabe.Feld.value;
if (text.length <= 0) {

alert ("Bitte geben Sie einen zu übersetzenden Text ein!");

}
}

function remember() {

...

</script>

<div align="center">

    <form name="Eingabe">
    <textarea rows=5 cols=40 name="Feld">Geben Sie doch etwas ein...</textarea>
      <br><br>
    <input type="button" value="OK" onClick="remember();
translator(document.Eingabe.Feld.value,'you','j00');
translator(document.Eingabe.Feld.value,'cker','xor');
translator(document.Eingabe.Feld.value,'cks','x');
translator(document.Eingabe.Feld.value,'a','4');
translator(document.Eingabe.Feld.value,'e','3');
translator(document.Eingabe.Feld.value,'i','!');
translator(document.Eingabe.Feld.value,'l','1');
translator(document.Eingabe.Feld.value,'o','0');
translator(document.Eingabe.Feld.value,'s','$');
translator(document.Eingabe.Feld.value,'t','7');
leer();
ausgabe()">
        <br><br>

    <textarea rows=5 cols=40 name="Feld1"></textarea>
    </form>

Gruß, Felix

funktionsabfrage unterbinden...

Der folgende Beitrag wurde am 31. 08. 2005, 15:13 Uhr von Verwundert veröffentlicht.

> text=document.Eingabe.Feld.value;
> if (text.length <= 0) {

Könntest Du mir ein Beispiel geben, für den Fall text.length<0 ?
Was würde mir das ein alert(text); ausgeben?

Gruß

funktionsabfrage unterbinden...

Der folgende Beitrag wurde am 31. 08. 2005, 15:34 Uhr von Der Martin veröffentlicht.

Hallo,

> > text=document.Eingabe.Feld.value;
> > if (text.length <= 0) {
>
> Könntest Du mir ein Beispiel geben, für den Fall text.length<0 ?
> Was würde mir das ein alert(text); ausgeben?

ähm, ja... ein String mit einer Länge kleiner Null würde mich auch mal interessieren. Also im Klartext: Die Abfrage ist unsinnig formuliert. Eine Abfrage auf ==0 hätte selbstverständlich gereicht.

So long,

 Martin

funktionsabfrage unterbinden...

Der folgende Beitrag wurde am 31. 08. 2005, 16:02 Uhr von Struppi veröffentlicht.

> ähm, ja... ein String mit einer Länge kleiner Null würde mich auch mal interessieren. Also im Klartext: Die Abfrage ist unsinnig formuliert. Eine Abfrage auf ==0 hätte selbstverständlich gereicht.

und in 99% der Fälle auch einfach if(!text)...

Struppi.
--
Javascript ist toll

© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4