Custom Client-Side Validator Element

Home | Getting Started | API | Elements | Actions | Validators | Handlers | Configuration Options | Advanced Guides | Troubleshooting | About

Table of Contents

1 Custom Client-Side Validator - #js_custom {}

Attach a custom validator, written in Javascript, to an element. The validator will be executed on the client when a postback is triggered. Validation failure will prevent the postback.

See Live Validation's Validate Custom for more information about the validation function and args.

Security Note

Note that because this is a purely Javascript-based validation, that you can't trust this validator in the same way you can trust that the server-side validators will ensure that a value is valid prior to postback. You will still likely have to verify your values server-side to protect against tampering.

This validator is provided more to give faster response to your users, since Javascript doesn't have to communicate with the server to validate. It usually goes together with the #custom server-side validator.

Usage

% Wire the validator against the 'my_validator' Javascript
% function, passing in some args...
wf:wire(ButtonID, TextBoxID, #validate { validators=[
  #js_custom {
    text="Validation failed.",
    function=my_validator,
    args="{ amount: 5 }"
  }
]})
wf:wire(ButtonID, TextBoxID, #validate { validators=[
  #js_custom {
    text="Validation failed.",
    function="function(value, args) { return value == 'the only correct answer'} ",
    when_empty=true }
]})

Attributes

text - (string)
The text to display if validation fails.
function - (atom or string)
The name of a Javascript function of an anonymous javascript function that returns true if the value is valid, false if invalid. function(Value, Args) -> 'true' or 'false'
args - (JSON String)
Extra arguments passed to the custom validation function.
whenempty - (boolean)
Run the validator even if the specified field's value is empty. By default, the custom validator doesn't apply if the field is empty, since you would normally use a separate #is_required for that. (default: false)

Date: 2014-11-12 19:50:20 CST

Author: Rusty Klophaus (@rustyio)

Org version 7.8.02 with Emacs version 23

Validate XHTML 1.0

Comments

Note:To specify code blocks, just use the generic code block syntax:
<pre><code>your code here</code></pre>


comments powered by Disqus