hilfdirselbst.ch
Facebook Twitter gamper-media

PlugIns, XTensions und Knowhow: Publishing-Worker.com


Forenindex » Programme » Web/Internet » PDF Grundlagen/Web/eForms » automatisch Häckchen aktivieren

 



laufweite
Beiträge: 5

13. Jan 2012, 11:38

Beitrag #1 von 8
Bewertung:

(1315 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

automatisch Häckchen aktivieren


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
Top

laufweite
Beiträge: 5

13. Jan 2012, 12:36

Beitrag #2 von 8
Beitrag ID: #487825

Bewertung:

(1282 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

automatisch Häckchen aktivieren


Es wäre cool, wenn ich auch nur nen Link erhalte

als Antwort auf: [#487821] Top

Scampi
Beiträge: 92

14. Jan 2012, 02:27

Beitrag #3 von 8
Beitrag ID: #487846

Bewertung:

(1225 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

automatisch Häckchen aktivieren


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] Top

laufweite
Beiträge: 5

14. Jan 2012, 14:10

Beitrag #4 von 8
Beitrag ID: #487859

Bewertung:

(1183 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

automatisch Häckchen aktivieren


Du bist ein Killer!

Danke vielmal, ich werde es noch heute ausprobieren.

als Antwort auf: [#487846] Top

laufweite
Beiträge: 5

14. Jan 2012, 15:52

Beitrag #5 von 8
Beitrag ID: #487861

Bewertung:

(1170 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

automatisch Häckchen aktivieren


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] Top

Max Wyss
Beiträge: 475

15. Jan 2012, 09:46

Beitrag #6 von 8
Beitrag ID: #487865

Bewertung:

(1123 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

automatisch Häckchen aktivieren


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] Top

Scampi
Beiträge: 92

15. Jan 2012, 19:37

Beitrag #7 von 8
Beitrag ID: #487872

Bewertung:

(1082 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

automatisch Häckchen aktivieren


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] Top

laufweite
Beiträge: 5

16. Jan 2012, 13:55

Beitrag #8 von 8
Beitrag ID: #487899

Bewertung:

(1018 mal gelesen)
URL zum Beitrag

Beitrag als Lesezeichen

automatisch Häckchen aktivieren


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] Top


Forenindex » Programme » Web/Internet » PDF Grundlagen/Web/eForms » automatisch Häckchen aktivieren


^