hilfdirselbst.ch
Facebook Twitter gamper-media

PlugIns, XTensions und Knowhow: Publishing-Worker.com

molekuel
Beiträge: 27
22. Okt 2003, 16:37
Beitrag #1 von 3
Bewertung:
(603 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

formular mit javascript problem...


Hallo,
habe ein formular mit integrierte javascripts gemacht, aber die validierung funktioniert nicht so wie sie sollte :-/
auf einem button "check" liegt folgendes script:

----------------
var doc = event.target;
var testOk = false;
var printButton = this.getField("btn_print");

// Verschiedene Fields definieren
var name = this.getField("name_txt"); // textfeld
var arbeitsfahig = this.getField("arbeitsfahig"); // checkbox ja | nein
var gesundheit = this.getField("gesundheit_txt"); // textfeld

// wenn alle vorhanden sind dann ok
if (name.value && arbeitsfahig.value) {
testOk = true;
} else {
var str = "Es fehlen noch folgende Felder:\n";

// diese abfrage funktioniert einwandfrei!
if (!name.value)
str += "- Name und Vorname\n";

// allerdings scheint diese abfrage nie true zu sein
if (!arbeitsfahig.value){
str += "- Arbeitsfähigkeit\n";

// wobei das folgende wieder funktioniert...???
} else if (arbeitsfahig.value == "nein") {
if (!gesundheit.value) {
str += "- Grund für Arbeitsunfähigkeit\n";
}
}

app.alert(str, 3, 0);
}

// wenn ich hier aber ausgebe:
app.alert(arbeitsfahig.value);
// so erhalte ich die richtigen werte zurück!
// "Off" wenn checkbox nicht angekreuzt
// "nein" wenn option "nein" angekreuzt wurde...

// rest funktioniert wieder so wie es sollte
if(testOk) {
printButton.hidden = false;
}else {
printButton.hidden = true;
}
----------------

habe ich irgendwo einen syntax fehler gemacht und seh den wald vor lauter bäumen nicht mehr?? Wäre froh, wenn mir jemand helfen könnte!

lieber gruss, manuel
Top
 
X
Albrecht Fischer
Beiträge: 9
24. Okt 2003, 16:29
Beitrag #2 von 3
Beitrag ID: #55981
Bewertung:
(603 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

formular mit javascript problem...


Hallo!

Es ist halt so: Die nicht ausgewählten Felder haben in Acrobat den Wert "Off" und das ist nun halt mal nicht "false" bzw. "0". Nur "false", "0" oder "" würden aber bei der impliziten Typkonvertierung in eine boolsche Variable zu "false".
Alles andere (auch "Off") wird per definitionem zu "true".

Vgl. auch die Acrobat Scripting Reference. ("For checkbox fields, unless an export value is specified, the default used when the field is checked is "Yes" (or the corresponding localized string). When it is unchecked, its value is "Off" (this is also true for a radio button field when none of its buttons are checked).")

Ohnehin ist das Script insofern kritisch, als ja implizit eine dreiwertige Logik für das Feld arbeitsfahig vorausgesetzt wird:

>> if (name.value && arbeitsfahig.value)

Hier könnte man meinen, dass gepürft wird, ob das Feld überhaupt "bearbeitet" wurde. (Aber bei Nicht-Arbeitsfähigkeit ist das Feld bearbeitet und "Leer").

Fazit: Entweder man lebt mit den Exportwerten (d.h. einer ist "Off" und damit in boolscher Sicht immer true, den anderen kann man ggf. auch auf "false", "0" oder "" setzen um ein boolsches false zu erzeugen), oder man arbeitet statt mit Checkboxen mit einem Listenfeld. Damit lassen sich dann auch dreiwertige Logiken abbilden:

"" (=Standardwert ist boolsch 0)
"ja"
"nein"

Gruß

Albrecht Fischer
als Antwort auf: [#55605] Top
 
Anonym
Beiträge: 22827
27. Okt 2003, 08:51
Beitrag #3 von 3
Beitrag ID: #56176
Bewertung:
(603 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

formular mit javascript problem...


vielen dank!!
jetzt ist einiges klarer! :-)

m.
als Antwort auf: [#55605] Top