Formularfelder sperren wieder aufgehoben

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
Antworten
Bob61
Beiträge: 57
Registriert: 09.04.2016, 17:16

Formularfelder sperren wieder aufgehoben

Beitrag von Bob61 » 01.12.2018, 16:05

Hallo verehrte User,
Die Sperrung von Formularfeldern macht mir momentan Probleme. In meinem Formular werden abschnittsweis Noten erfasst und durch eine Unterschrift gesperrt. Alle Abschnitte funktionieren wie gewünscht, lediglich ein Abschnitt macht Probleme. Werden in diesem Noten erfasst und durch eine Unterschrift gesperrt, wird diese Sperrung durch die nachfolgende Erfassung von Noten, wieder teilweise aufgehoben (siehe u.a. Testseite).

Wie kann ich den Fehler beheben.


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

BAlheit
Beiträge: 834
Registriert: 16.08.2013, 12:22

Re: Formularfelder sperren wieder aufgehoben

Beitrag von BAlheit » 02.12.2018, 16:51

Mal andere Namen für die Felder verwenden.

Bob61
Beiträge: 57
Registriert: 09.04.2016, 17:16

Re: Formularfelder sperren wieder aufgehoben

Beitrag von Bob61 » 03.12.2018, 11:20

Ich habe die Felder mehrfach umbenannt, jedoch ohne Erfolg. Von allen Feldern die durch die Unterschrift gesperrt werden,
wird nach der weiteren Eingabe von Noten, lediglich zwei Notenfelder (Notenfeld für die Lehrprobe und/oder das für die Nachprüfung) entsperrt.

BAlheit
Beiträge: 834
Registriert: 16.08.2013, 12:22

Re: Formularfelder sperren wieder aufgehoben

Beitrag von BAlheit » 03.12.2018, 15:39

Eventuell wird die Eigenschaft readonly wo anders zurüchgesetzt.

Bob61
Beiträge: 57
Registriert: 09.04.2016, 17:16

Re: Formularfelder sperren wieder aufgehoben

Beitrag von Bob61 » 04.12.2018, 10:11

Kann man diese Eigenschaft readonly durch eine andere Eigenschaft ersetzen, bzw. wird diese Eigenschaft für die Grundfunktion benötigt?

BAlheit
Beiträge: 834
Registriert: 16.08.2013, 12:22

Re: Formularfelder sperren wieder aufgehoben

Beitrag von BAlheit » 04.12.2018, 10:30

Wenn die Eigenschaft eines Feldes auf true gesetzt wird, kann in diesem Feld keine Eingabe erfolgen oder eine Eingabe nicht geändert werden.

Bob61
Beiträge: 57
Registriert: 09.04.2016, 17:16

Re: Formularfelder sperren wieder aufgehoben

Beitrag von Bob61 » 04.12.2018, 12:32

Das ist ja nur dann der Fall, wenn die Prüfungsnote kleiner 4,5 ist, dann ist eine Nachprüfung nicht erforderlich. Kann man in diesem Fall die Eigenschaft entfernen und das Feld "NN" für eine Eingabe, die jedoch nicht erfolgen darf, öffnen? Wenn hierdurch die Sperrung nicht aufgehoben wird.

BAlheit
Beiträge: 834
Registriert: 16.08.2013, 12:22

Re: Formularfelder sperren wieder aufgehoben

Beitrag von BAlheit » 04.12.2018, 13:14

Durch folgende Befehle wird die Sperre aufgehoben:

Code: Alles auswählen

this.getField("NF").readonly = false ;
this.getField("NT").readonly = false ;

Bob61
Beiträge: 57
Registriert: 09.04.2016, 17:16

Re: Formularfelder sperren wieder aufgehoben

Beitrag von Bob61 » 06.12.2018, 13:52

Der im PDF eingesetzte Script wurde für zwei Lehrproben geschrieben, die zweite Lehrprobe habe ich ausgeblendet. Den konnte ich auch für drei und vier Lehrproben erweitern. Jedoch im o.a. PDF wird ja nur noch eine Lehrprobe erfasst. Demnach könnten die besagten Befehle entfallen. Ich schraube jetzt schon mehr als drei Wochen an eine entsprechende Lösung, bisher ohne Erfolg. Ich bekomme die If-Abfragen einfach nicht hin.

Bob61
Beiträge: 57
Registriert: 09.04.2016, 17:16

Re: Formularfelder sperren wieder aufgehoben

Beitrag von Bob61 » 12.12.2018, 00:29

Ich habe es nochmal versucht und habe nun für die Felder "LBN" , "NNP" , "Anmerkung" und "Nges" eine Lösung gefunden. Das Script funktioniert so wie es sein soll. Bis auf das Feld "NNP", für das ich im PDF, den Schreibschutz gesetzt habe. Dieses Feld soll erst dann für eine Eingabe freigegeben werden, wenn die Note im Feld "LBN" größer 4,5 ist.
Kannst Du mir zeigen, was ich wo ändern ggf. ergänzen muss?

var nf = this.getField("LBN").value ;
nnp = this.getField("NNP").value ;


if ((nf == "") && (nnp == "")) { // ohne Eingaben
event.value = "" ;
this.getField("Anmerkung").value = ""

} else if (nf < 4.5) { // bestanden
event.value = nf ;
this.getField("Anmerkung").value = "bestanden"


} else if ((nf >= 4.5) && (nnp >= 4.5)) { // beide nicht bestanden
event.value = nf ;
this.getField("Anmerkung").value = "nicht bestanden"


} else if ((nf >= 4.5) && (nnp >= 0.5)) { // bestanden
event.value = 4.499 ;
this.getField("Anmerkung").value = "bestanden"
}

Antworten