[GastForen Programme Web/Internet PDF Grundlagen / Web / eForms automatisch Häckchen aktivieren

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Web/Internet - Webdesign, eForms
Themen
Beiträge
Moderatoren
Letzter Beitrag

automatisch Häckchen aktivieren

laufweite
Beiträge gesamt: 5

13. Jan 2012, 11:38
Beitrag # 1 von 8
Bewertung:
(3788 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo zusammen


Ich bin gerade dabei ein Formular zu gestalten und komme an einem Punkt einfach nicht weiter.

Und zwar, möchte ich, dass ein Häkchen aktiviert werden soll, wenn man in einem anderen Feld das heutige Datum eingibt.

Ich bin dankbar für Antworten
X

automatisch Häckchen aktivieren

laufweite
Beiträge gesamt: 5

13. Jan 2012, 12:36
Beitrag # 2 von 8
Beitrag ID: #487825
Bewertung:
(3755 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Es wäre cool, wenn ich auch nur nen Link erhalte


als Antwort auf: [#487821]

automatisch Häckchen aktivieren

Scampi
Beiträge gesamt: 102

14. Jan 2012, 02:27
Beitrag # 3 von 8
Beitrag ID: #487846
Bewertung:
(3698 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo laufweite,

Textfeld (Text1) erstellen, unter Format Datum einstellen.
Kontrollkästchen (K1) Exportwert: Ja erstellen.

Bei Text1 unter Aktion > Feld deaktivieren > Javascript ausführen, folgendes Script einfügen.

---------------------------------------

if (this.getField("Text1").value >="0")
this.getField("K1").value= "Ja";
else
this.getField("K1").value= "";

----------------------------------------

VG Scampi


als Antwort auf: [#487825]

automatisch Häckchen aktivieren

laufweite
Beiträge gesamt: 5

14. Jan 2012, 14:10
Beitrag # 4 von 8
Beitrag ID: #487859
Bewertung:
(3656 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Du bist ein Killer!

Danke vielmal, ich werde es noch heute ausprobieren.


als Antwort auf: [#487846]

automatisch Häckchen aktivieren

laufweite
Beiträge gesamt: 5

14. Jan 2012, 15:52
Beitrag # 5 von 8
Beitrag ID: #487861
Bewertung:
(3643 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Also war gerade dabei es auzuprobieren.

Hat zum Teil funkioniert. Der Haken ist jedoch, dass das Kästchen auch aktiviert wird, wenn man ein anders Datum als das heutige schreibt.

Nun habe ich das Script mal erweitert und zwar dachte ich mir man müsse dem Feld irgendeinen "Vergleich-Befehl" zuweisen.
(Sorry hab fast keine Ahnung vom Programmieren).
Also habe folgendes zusätzlich geschrieben:

var jetzt = new Date ();
if (this.getField("Text1").value >="jetzt")
this.getField("K1").value= "on";
else
this.getField("K1").value= "off";

Aber so hat das auch nicht funktioniert.


als Antwort auf: [#487859]

automatisch Häckchen aktivieren

Max Wyss
Beiträge gesamt: 532

15. Jan 2012, 09:46
Beitrag # 6 von 8
Beitrag ID: #487865
Bewertung:
(3596 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Das Ganze ist eben doch nicht so trivial einfach. Nicht das Setzen der checkbox; das ist trivial… "angewählt" ist der Feldwert der definierte Return value; "nicht gewählt" ist der Feldwert "Off" (grosses O, und nur grosses O).

Das Problem in der Aufgabenstellung ist das saubere Aufbauen der Bedingung für "heute". Hierzu muss zwingend bekannt sein, wie das Eingabefeld formatiert ist. Daraus kann dann ein Date Objekt abgeleitet werden. Parallel hierzu wird ein Date Objekt für "jetzt" gebildet. Nun können wir die internen Werte vergleichen (der interne Wert des Date Objekts ist die Anzahl Millisekunden seit einem Referenzzeitpunkt). Wenn nun die Differenz der internen Werte zwischen "jetzt" und dem eingegebenen Datum zwischen 0 und der Anzahl Millisekunden pro Tag liegt, ist das heutige Datum eingegeben.

Nun zum Code; wir nehmen an, das eingegebene Datum hätte das Format "DD.MM.YYYY", und das Checkboxfeld heisse "heute" mit return Value "ja" :

Code
var jetzt = new Date().valueOf() ; 
var eingabe = util.scand("DD.MM.YYYY", this.getField("eingabeDatum").valueAsString) ;

if (eingabe != null) {
var differenz = jetzt - eingabe.valueOf() ;
var msectag = 1000*60*60*24 ;
if (differenz > 0 && differenz < msectag ) {
this.getField("heute").value = "ja" ;
} else {
this.getField("heute").value = "Off" ;
}
}
}


…und damit sollte es nun funktionieren.

HTH.

Max Wyss.


als Antwort auf: [#487861]

automatisch Häckchen aktivieren

Scampi
Beiträge gesamt: 102

15. Jan 2012, 19:37
Beitrag # 7 von 8
Beitrag ID: #487872
Bewertung:
(3555 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Herr Max Wyss,

vielen Dank für die kleine Erläuterung des Scriptaufbaus.
Es ist immer sehr hilfreich, wenn man als Laie, auch ein bisschen Hintergrundwissen erfährt.

Zwei Probleme habe ich aber den noch.

1. das Datumsformat DD.MM.YYYY zeigt mir falsche Werte an.
Wird also nicht erkannt. (eingestellt unter Format Datum Benutzerdefiniert)

2. Obwohl ich das Format jetzt in dd.mm.yyyy geändert habe und dieses auch in ihrem Script, bekomme ich immer ein Syntax Error.

Wo, also muss das Script eingefügt werden? Oder was muss noch geändert werden?

VG Scampi


als Antwort auf: [#487865]

automatisch Häckchen aktivieren

laufweite
Beiträge gesamt: 5

16. Jan 2012, 13:55
Beitrag # 8 von 8
Beitrag ID: #487899
Bewertung:
(3491 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Super hat jetzt geklappt.

Musste aber kleine Änderungen am Script von Max machen.

und zwar:

1.
var eingabe = util.scand("DD.MM.YYYY", this.getField("eingabeDatum").valueAsString) ;

DD.MM.YYYY = dd.mm.yyyy (klein schreiben)

dann 2.
if (eingabe != null) ein doppeltes Gleichheitszeichen setzen also: ==

und schliesslich

this.getField("heute").value = "Off" , dass Off herausnehmen, also leer lassen

ach ja, unten ist eine geschweifte Klammer zuviel.

Also ich danke euch beiden herzliche für die Unterstützung.

Liebe Grüsse

Laufweite


als Antwort auf: [#487872]
X