Input Validation

brucherseifer 23-10-2009 06:09

Hallo, zunächst möchte ich mich für das schöne Werkzeug (JSAction.js) bedanken. Nur es funktioniert nicht ganz in meiner Page. Es fehlt die Messagebox mit der Warnung. Was mache ich falsch? Außerdem noch eine Frage: Haben Sie auch eine Eingabe-Prüfung für Date-Felder (tt.mm.jjjj)?

Hammoud 23-10-2009 06:37

Hallo, anbei habe ich ein Minimal Beispiel angefügt, das auf den wichtigsten Code reduziert ist. Dieses besteht aus folgenden 3 Dateien (einfach alle in ein Verzeichnis kopieren): 1. test.html Beispiel HTML-Seite die nur 1 Nummern Feld und die MessageBox enthält. Die MessageBox ist anfangs mit der CSS Klasse "hide" ausgeblendet. 2. JSAction.js Die JavaScript Framework Datei 3. test.css Die CSS Datei die notwendige Formatierungsinformationen enthält. Hier können Sie unter anderem das Layout der Messagebox bsw Farben, Grössen und Positionierung angeben. Mit freundlichen Grüssen, J. Hammoud PS: Die Nachrichtentexte können nicht Locale spezifisch konfiguriert werden. Meldungstexte sind derzeit nur in Englischer Sprache möglich.

brucherseifer 23-10-2009 08:47

Hallo, noch mehr Fragen: welcher Abschnitt ist für die vertikale Größe der Box? Gibt es auch einen Test "DATUM"? Mit freundlichen Grüßen M. Brucherseifer PS: Habe die Meldungen "error.integer" und "error.currency" in deutsch ändern können, nur Umlaute mag er nicht!

Hammoud 23-10-2009 11:03

Hallo, > welcher Abschnitt ist für die vertikale Größe der Box? Lässt sich leider im Moment nur über JavaScript ändern. Die Datei Test.js zeigt wie man die Werte ändern kann. Die MessageBox reagiert dynamisch, fügt man mehrere Nachrichten ein, kann Sie ausgeklappt werden. Die Datei test2.html enthält Links welche die MessageBox mit Beispielnachrichten befüllt um das zu demonstrieren. > PS: Habe die Meldungen "error.integer" und "error.currency" in deutsch ändern können, nur Umlaute mag er nicht! Ach ja direkt in JSAction.js ist es natürlich änderbar:) Hatte ich gar nicht dran gedacht, schwirrte immer eine einfache ausgelagerten Lösung im Kopf herum. Auch die Werte der vertikalen Höhe der MessageBox wären so änderbar: Im Constructor der Klasse HpBox gibs eine Zeile: this.minimumHeight=26; > Gibt es auch einen Test "DATUM"? Leider nein - gäbe da noch viel zu implementieren und optimieren. Im Anhang hab ich auch mal ein Beispiel codiert, wie man per JavaScript zusätzliche/individuelle Actions auf Inputs setzten kann. Müssten Sie nur die Prüfung auf 1 mit einer Datumsprüffunktion austauschen. J. Hammoud

zusätzliche Paramete 24-11-2009 07:41

Hallo, vielen Dank für das tolle Tool. Wie übergibt man denn die erwähnten zusätzlichen Parameter. Speziell den Maximum Wert? Danke Lenny

Johnny 24-11-2009 08:33

Die Prüfung auf Maximum und Minimum kann man auch ganz einfach im HTML Code mit anfügen. <input ... class="integer maximum10" ... />

Lenny 26-11-2009 08:01

Sehr schön. Vielen Dank

Emanuel Jung 14-04-2010 04:52

Hallo, ich nutze dieses nette Tool (JSAction.js) in einigen seiten zur Input-Validierung. Nun habe ich eine neue Funktion in meinen Seiten implementiert um neue Zeilen hinzu zu fügen. Hierbei wird die Letzte Zeile der jeweiligen Tabelle geclont und ans ende der Tabelle angehängt. Das Feld strBetrag[] ist hierbei im orginal bereits mit der class "currency" versehen.Auch nach kopieren / klonen der Zeile ist die Kopie mit der Klasse versehen. Nur leider greift JSAction bei dieser Zelle nicht mehr (ich vermute aufgrund der nachträglichen DOM-Manipulation) Kann man JSAction durch aufruf einer Funktion / Methode dazu bringen auch die neuen Zeilen / Felder zu validieren? function cloneLastRowToTable(tblID) { var tbl = document.getElementById(tblID).tBodies[0]; var intLastRow = tbl.rows.length; var objLastRow = tbl.rows[intLastRow-1].cloneNode(true); //IDs der neuen Elemente ändern! //Neue Zeile anfügen tbl.appendChild(objLastRow); var strHinweis = ""; for(i=0;i<objLastRow.cells.length;i++){ //show me all Nodes for(t=0;t<objLastRow.cells[i].childNodes.length;t++){ //Get Elements Numeric ID objLastRow.cells[i].childNodes[t].id=getNextID(objLastRow.cells[i].childNodes[t].id); switch(objLastRow.cells[i].childNodes[t].name){ case "edID[]": objLastRow.cells[i].childNodes[t].value="0"; break; case "selMwstkz[]": break; case "strBetrag[]": objLastRow.cells[i].childNodes[t].value=""; break; case "selKOART1[]": break; case "selKOART2[]": break; case "selNEBK1[]": break; case "selNEBK2[]": break; } } } }

Johnny 14-04-2010 07:48

Hi Emanuel, Das nachträgliche Registrieren der Standard Currency Actions für ein Input Element funktioniert so: HpCurrency.register(price, null, null, null, null); Johnny

Emanuel Jung 14-04-2010 07:54

Hallo Johnny, danke hat nach einer kleinen anpassung funktioniert .. statt price muss man das jeweilige feld angeben :) vielen dank für die schnelle hilfe.

Input Validation

Language German

Java JSF XHTML WML JavaScript GlassFish MySQL NetBeans

Imprint

Visits
619859
Today
21