PowerForms: Declarative client-side form field validation

All uses of HTML forms may benefit from validation of the specified input field values. Simple validation matches individual values against specified formats, while more advanced validation may involve interdependencies of form fields. There is currently no standard for specifying or implementing such validation. Today, CGI programmers often use Perl libraries for simple server-side validation or program customized JavaScript solutions for client-side validation. We present PowerForms, which is an add-on to HTML forms that allows a purely declarative specification of input formats and sophisticated interdependencies of form fields. While our work may be seen as inspiration for a future extension of HTML, it is also available for CGI programmers today through a preprocessor that translates a PowerForms document into a combination of standard HTML and JavaScript that works on all combinations of platforms and browsers. The definitions of PowerForms formats are syntactically disjoint from the form itself, which allows a modular development where the form is perhaps automatically generated by other tools and the formats and interdependencies are added separately. PowerForms has a clean semantics defined through a fixed-point process that resolves the interdependencies between all field values. Text fields are equipped with status icons (by default traffic lights) that continuously reflect the validity of the text that has been entered so far, thus providing immediate feed-back for the user. For other GUI components the available options are dynamically filtered to present only the allowed values. PowerForms are integrated into the system for generating interactive Web services, but is also freely available in an Open Source distribution as a stand-alone package.

[1]  Arvind Malhotra,et al.  Xml schema part 2: datatypes , 1999 .

[2]  Anders Sandholm,et al.  Distributed Safety Controllers for Web Services , 1997, FASE.

[3]  Nils Klarlund,et al.  The DSD Schema Language and its Applications , 2000 .

[4]  Bertrand Jeannet,et al.  Dynamic Partitioning in Linear Relation Analysis. Application to the Verification of Synchronous Programs , 2000 .

[5]  C. M. Sperberg-McQueen,et al.  Extensible markup language , 1997 .

[6]  Paul Pettersson,et al.  Guided Synthesis of Control Programs for a Batch Plant using UPPAAL , 2000 .

[7]  C. M. Sperberg-McQueen,et al.  eXtensible Markup Language (XML) 1.0 (Second Edition) , 2000 .

[8]  Nils Klarlund,et al.  MONA Implementation Secrets , 2000, Int. J. Found. Comput. Sci..

[9]  Andreas Girgensohn,et al.  Seamless Integration of Interactive Forms into the Web , 1997, Comput. Networks.

[10]  Anders Sandholm,et al.  A type system for dynamic Web documents , 2000, POPL '00.

[11]  John Desborough Cold Fusion 3.0: Intranet Application Development Toolkit , 2000 .

[12]  Michael I. Schwartzbach,et al.  The pointer assertion logic engine , 2000, PLDI '01.

[13]  Claus Brabrand,et al.  a Language for Developing Interactive Web Services , 2000 .

[14]  Claus Brabrand,et al.  A Runtime System for Interactive Web Services , 1999 .

[15]  Jonathan Robie,et al.  Document Object Model (DOM) Level 2 Specification , 1998 .

[16]  Paul B. Thistlewaite,et al.  Active FORMs , 1996, Comput. Networks.

[17]  C. M. Sperberg-McQueen,et al.  Extensible Markup Language (XML) , 1997, World Wide Web J..