[Gelöst]Jscript Operatoren Syntax - "oder"

1. Juli 2011 12:10

Hallo zusammen,

ich bin gerade dabei ein Skript für eine dynamische Pciklist zu schreiben. Es funktioniert auch fast alles, aber ich habe das Problem, dass bei einer IF-Anweisung die Bedingung nicht greift.

Folgendes habe ich geschrieben (Auszug):

if(optiontext != "Text1" || optiontext !="TechText2" || optiontext !="Text3"){
subcategory.removeOption(optionvalue);
alert("origOptions2="+optiontext);
}


So, obwohl die Bedingung nicht erfüllt ist springt das Programm in die Schleife. Wenn ich aber die "||" Operatoren entferne und nur eine Bedingung in der Klammer habe habe, dann funktioniert die Anweisung.

Daher meine Frage, ob es eine spezielle Syntax für die ODER-Operatoren gibt?

Vielen Dank im Voraus.

Gruß

Lu
Zuletzt geändert von hotshot am 4. Juli 2011 10:27, insgesamt 1-mal geändert.

Re: Jscript Operatoren Syntax - "oder"

1. Juli 2011 12:51

Hallo,

der richtige Syntax lautet

Code:
if((optiontext != "Text1") || (optiontext !="TechText2") || (optiontext !="Text3"))
{
   subcategory.removeOption(optionvalue);
   alert("origOptions2="+optiontext);
}

Re: Jscript Operatoren Syntax - "oder"

1. Juli 2011 13:42

Hallo Michael,

vielen Dank für die Hilfe!

Ich habe meinen Code entsprechend angepasst:

Code:
if((optiontext != "Text1") || (optiontext !="Text2") || (optiontext !="Text3"))
{
subcategory.removeOption(optionvalue);
alert("origOptions2="+optiontext);
}


Leider ergab das keinen Erfolg. Ich habe auch eine andere IF-Bedingung mit den "||" aber mit der anderen Form ohne Klammer, da hat das funktioniert, auch mit deiner Version...

Gruß

Lu

P.s.: Wie kann ich eine Meldung schließen und mit gelöst kennzeichnen? Danke.

Re: Jscript Operatoren Syntax - "oder"

1. Juli 2011 15:07

Hallo,

ersetze mal " durch ', dann sollte das funktionieren.

Steht denn auch in optiontext der Wert, mit dem du vergleichst?

Re: Jscript Operatoren Syntax - "oder"

1. Juli 2011 15:28

Hallo Michael,

danke für die Info.

Aus Verzweiflung habe ich die "||" durch "&&" ersetzt:

Code:
if((optiontext !="Kaufmaennische Anfrage") &&  (optiontext != "Technische Anfrage")  && (optiontext != "Allgemeine Anfrage"))
{
subcategory.removeOption(optionvalue);
}


witzigerweise erfüllt das genau meine Zweck...

Also ich habe eine Pickliste mit mehreren Optionen und nach Abhängigkeit vom Wert einer anderen Pickliste sollen Optionen entfernt werden. Nach meiner Programmierkenntnis müsste eigentlich der ODER-Operator der Richtige sein und UND, da es reicht wenn eine Bedingung TRUE ist ;o))

Bringt meine Logik etwas durcheinander bzw. ich schaue mir das nochmal genau an. Vielleicht habe ich irgendwo nen Denkfehler.

Ich versuche das nochmal mit ' anstatt "

Vielen Dank.

Gruß

Lu

Re: Jscript Operatoren Syntax - "oder"

3. Juli 2011 12:34

Hallo Lu,

ich vermute, dast du dann bei der Oder Verknüpfung irgend wo einen Schreibfehler hast. Die einzelnen Oderausdrücke in Klammern zu setzen funktioniert, das setze ich selbst ständig ein.

Bringt meine Logik etwas durcheinander bzw. ich schaue mir das nochmal genau an. Vielleicht habe ich irgendwo nen Denkfehler.

Nicht nur das, eine UND Verknüpfung muss immer komplett geprüft werden, eine Oder Verknüpfung wird nur bis zum ersten True geprüft, was in der Regel schneller ist.

Re: Jscript Operatoren Syntax - "oder"

4. Juli 2011 08:03

Hallo Michael,

so wie du das erklärt hast verstehe ich das normalerweise auch. Ich habe ein Array mit den Originalwerten der Pickliste. Und in meiner Bedingung sollte ja geprüft werden, ob eines der Aussagen zutrifft, da bei mir ja nur ein Bedingung stimmen kann von den drei oder keine.

Nach nem Schreibfehler habe ich mehrmals geschaut, aber keinen gefunden. Es kommt mir fast so vor als wären die UND und ODER Syntax vertauscht, was aber nicht sein kann...

Trotzdem danke.

Gruß

Lu

Re: Jscript Operatoren Syntax - "oder"

4. Juli 2011 08:22

Wenn ich das richtig lese, dann kann aus
Code:
if((optiontext != "Text1") || (optiontext !="Text2") || (optiontext !="Text3"))
doch nur dann false heraus kommen, wenn alle 4 Werte (Optiontext und Texte 1-3) gleich sind.
Du willst doch heraus bekommen, ob optiontext in der Menge {Text1,Text2,Text3} enthalten ist? Also entweder optiontext gleich Text1 oder gleich Text2 oder gleich Text3, oder - als Gegenteil geschrieben, so wie du es nun hast - ungleich Text1 und ungleich Text2 und ungleich Text3.
Zuletzt geändert von McClane am 4. Juli 2011 13:30, insgesamt 1-mal geändert.

Re: Jscript Operatoren Syntax - "oder"

4. Juli 2011 09:19

Hallo Michael,

oh ich Dummkopf!! Jetzt habe ich meinen Denkfehler erkannt!! :mrgreen:
Wenn ich mit ODER arebite hätte ich "==" verwenden müssen!!

4-Augenprinzip wäre hier mal besser gewesen!!

Tausend mal Danke für die Denkhilfe!! :roll:

Gruß

Lu