blob: 78924da48859f5f8b7d99eb43c0405f63041cd05 [file] [log] [blame]
<?xml version="1.0"?>
<!-- $Id$ -->
<!DOCTYPE script PUBLIC
"-//Apache Software Foundation//Tapestry Script Specification 3.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd">
<!--
Creates a script for validating that a field is required and/or has a minimum
field length.
Input symbols:
field, form, validator: As normal for a validation script.
formatMessage: Message displayed if the input is not valid.
requiredMessage: Message to display if the field is required yet blank.
rangeMessage: Message to display if the field is not in the expected range.
formatExpression: Regular expression for the field.
-->
<script>
<include-script resource-path="/org/apache/tapestry/valid/Validator.js"/>
<input-symbol key="field" class="org.apache.tapestry.valid.ValidField" required="yes"/>
<input-symbol key="form" class="org.apache.tapestry.IForm" required="yes"/>
<input-symbol key="validator" class="org.apache.tapestry.valid.NumberValidator" required="yes"/>
<input-symbol key="formatMessage" class="java.lang.String" required="yes"/>
<input-symbol key="requiredMessage" class="java.lang.String"/>
<input-symbol key="rangeMessage" class="java.lang.String"/>
<let key="function" unique="yes">
validate_${field.name}
</let>
<body>
function ${function}()
{
var field = document.${form.name}.${field.name};
var stringValue = field.value;
<if expression="validator.required">
if (stringValue.length == 0)
return validator_invalid_field(field, "${requiredMessage}");
</if>
<if-not expression="validator.required">
if (stringValue.length == 0)
return true;
</if-not>
var value = stringValue * 1;
if (isNaN(value))
return validator_invalid_field(field, "${formatMessage}");
<if expression="validator.integerNumber">
var regex = /\./;
if (stringValue.search(regex) != -1)
return validator_invalid_field(field, "${formatMessage}");
</if>
<if expression="validator.minimum != null">
if (value &lt; ${validator.minimum})
return validator_invalid_field(field, "${rangeMessage}");
</if>
<if expression="validator.maximum != null">
if (value &gt; ${validator.maximum})
return validator_invalid_field(field, "${rangeMessage}");
</if>
return true;
}
</body>
</script>