Feld nach Überprüfung auf "leer", nicht verlassen

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
Antworten
Lifebiker
Beiträge: 6
Registriert: 19.06.2009, 12:23

Feld nach Überprüfung auf "leer", nicht verlassen

Beitrag von Lifebiker » 19.06.2009, 12:29

Hallo, ich habe folgendes Problem.

Ich habe in einem Formular Pflichtfelder, die überprüft werden sollen und dann ein Fehlermeldung hervorbringen sollen. Das funktioniert auch gut mit

[fontsize=2][fontsize=2]if[/fontsize][/fontsize][fontsize=2](Vorname.rawValue [/fontsize][fontsize=2][fontsize=2]==[/fontsize][/fontsize][fontsize=2] [/fontsize][fontsize=2][fontsize=2]null[/fontsize][/fontsize][fontsize=2])app.alert("Bitte füllen Sie den Vornamen aus.")[/fontsize]

[fontsize=2]Wenn ich jetzt aber die Fehlermeldung mit "OK" bestätige, springt der Cursor in das nächste Feld, verliert also den focus auf dem Feld "Vorname".[/fontsize]

[fontsize=2]Ich bin am verzweifeln und habe schon viel probiert.[/fontsize]

[fontsize=2]Könnt Ihr mir sagen, wie ich LCD dazu bringe den Cursor in diesem leeren Feld zu halten.[/fontsize]

[fontsize=2]Ich würde mich über response freuen.[/fontsize]

[fontsize=2]Vielen Dank
[/fontsize]

Lifebiker
Beiträge: 6
Registriert: 19.06.2009, 12:23

Feld nach Überprüfung auf "leer", nicht verlassen

Beitrag von Lifebiker » 19.06.2009, 17:13

Update:

Bisher bin ich soweit:
[fontsize=2][fontsize=2]
if[/fontsize]
[/fontsize]
[fontsize=2](Vorname.rawvalue [/fontsize][fontsize=2][fontsize=2]==[/fontsize][/fontsize][fontsize=2] [/fontsize][fontsize=2][fontsize=2]null[/fontsize][/fontsize][fontsize=2])app.alert("Bitte geben Sie alle Vornamen an.");xfa.host.setFocus("Vorname");
[/fontsize]
Jetzt bleibt der Cursor im Feld. ALLERDINGS auch wenn das Feld "Vorname" ausgefüllt ist.

Könnte jemand den Code ergänzen oder in eine Schleife setzen ?

Oder das Return. Ich weiß auch nicht wo die "{" und "}" genau hinkommen.

Es ist zum Mäuse melken. 

Ich hab doch nicht soviel Ahnung davon.

Vielen lieben Dank

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Feld nach Überprüfung auf "leer", nicht verlassen

Beitrag von walde » 20.06.2009, 10:46

Hallo Lifebiker,

 
Hallo Lifebiker,

Ihr Befehl "if(Vorname.rawvalue ..." hat einen Schreibfehler, deswegen verlässt der Fokus nicht das Feld.
Anstatt "rawvalue" sollten Sie es mit "rawValue" probieren.



gruß,



Walde 

 

Lifebiker
Beiträge: 6
Registriert: 19.06.2009, 12:23

Feld nach Überprüfung auf "leer", nicht verlassen

Beitrag von Lifebiker » 20.06.2009, 13:41

Lieber Walde,

vielen Dank für den Tipp. Nur verläßt er auch bei folgendem Code das gefüllte Feld nicht.
if(Vorname.rawValue == null)app.alert("Bitte geben Sie alle Vornamen an.");xfa.host.setFocus("Vorname");

Ich habe das Gefühl, da gehört noch irgendwie ein return false oder ein return true hin. Ich weiß nur nicht wo und wie.

Könnte mir bitte nochmal jemand helfen.
Vielen Dank für die Mühen.
Lg
Lifebiker

Lifebiker
Beiträge: 6
Registriert: 19.06.2009, 12:23

Feld nach Überprüfung auf "leer", nicht verlassen

Beitrag von Lifebiker » 20.06.2009, 14:01

Hallo liebe Leute,
hier nun der funktionierende Code für das Problem.

if(Vorname.rawValue == null){app.alert("Bitte geben Sie alle Vornamen an.");xfa.host.setFocus("Vorname");};

Sinn ist: Feld bei exit überprüfen, ob Leer. Wenn Leer zeige Meldung und bleibe im Feld. Wenn Feld ausgefüllt, dann springe mit tab weiter.

Ich danke für die Unterstützung.

LG
Lifebiker
P.S. Achtet auf Details wie "{}" und "rawValue" mit großem V. Auch die Wirkung von ";" ist nicht zu unterschätzen...   ;-)

Lifebiker
Beiträge: 6
Registriert: 19.06.2009, 12:23

Feld nach Überprüfung auf "leer", nicht verlassen

Beitrag von Lifebiker » 20.06.2009, 15:56

Update:

Der Code funktioniert nur, wenn nicht gleich das nächste Feld mit dem gleichen "exit" ereignis belegt wird,weil:

Feld 1 wird bei exit überprüft ob es leer ist. beim exit ereignis hüpft der Cursor nur kurz in das nächste Feld2. In Feld 2 prüft er auch gleich den Inhalt, hat aber noch den Befehl. dass der Cursor in das Feld 1 springen soll, bringt aber auch die Meldung für Feld zwei. Also ist eine Endlosschleife mit zwei leeren Feldern entstanden.

Schaaaade. Habe leider keine Lösung

Wäre dankbar für Lösungsansätze.

Gruß

Lifebiker

 

walde
Beiträge: 611
Registriert: 02.05.2008, 21:22

Feld nach Überprüfung auf "leer", nicht verlassen

Beitrag von walde » 20.06.2009, 18:58

Hallo Lifebiker,

 

Nachfolgend habe ich einen Skript und eine Beispieldatei, die Ihr Problem vielleicht lösen.

Code: Alles auswählen

Formular1.#variables[0].Scripte - (JavaScript, client)

function NullTest(){

for (var i = 0; i < xfa.host.numPages; i++) {
var oFields = xfa.layout.pageContent(i, "field");
var nodesLength = oFields.length;
for (var j = 0; j < nodesLength; j++){
var oItem = oFields.item(j);
if(oItem.ui.oneOfChild.className != "button"){
if(oItem.rawValue == null | oItem.rawValue == ""){
app.alert(oItem.name + " ist nicht ausgefüllt");
xfa.host.setFocus(oItem);
break;
}
}
}
}
}
gruß,

 

Walde



Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten