You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by bu...@apache.org on 2003/02/07 17:20:12 UTC
DO NOT REPLY [Bug 16885] New: -
client side validation strips off dashes in user defined variables in validation.xml
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16885>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16885
client side validation strips off dashes in user defined variables in validation.xml
Summary: client side validation strips off dashes in user defined
variables in validation.xml
Product: Struts
Version: 1.1 Beta 3
Platform: PC
OS/Version: Windows NT/2K
Status: NEW
Severity: Normal
Priority: Other
Component: Validator Framework
AssignedTo: struts-dev@jakarta.apache.org
ReportedBy: ze.cheng@mail.mcgill.ca
CC: ze.cheng@mail.mcgill.ca
Hello,
I tried to implement a conditional mask in javascript in my validator-
rules.xml. I take the mask originally as a string from validation.xml and
generate a regexp object from that in validator-rules.xml. The source file
(html) of the browser escaped all the dashes in my mask pattern correctly. What
happens is the escaped dashes in my mask pattern all disappear when they come
to the javascript function in validator-rules.xml. (printed out with alert).
For example, I use '\w' to stand for all the word chars in my mask pattern in
validation.xml, in the html created by jsp, it is '\\w', (it is always doubled
in html page so if I give 4 dashes in validation, it is 8 in html, which does
not work either ), but it is 'w' in the javascript function in validator-
rules.xml. I tried it with the sample struts validator web application package
(registration form and multi-registration form) and it is the same thing. But
the server side validation takes the dashes correctly. I am using the 1.1-
beta3. I didn't have this problem before until I updated my struts into 1.1-
beta3. Can it be a bug?
One more thing, may I know how I can define a global javascript function
that can be used by a couple of validators in validator-rules.xml?
Thank you for any help.
ginger
The related part in validation.xml:
<field property="lastName"
depends="cdnmask">
<msg name="cdnmask"
key="registrationForm.lastname.maskmsg"/>
<arg0 key="registrationForm.lastname.displayname"/>
<var>
<var-name>cdnProperty</var-name>
<var-value>firstName</var-value>
</var>
<var>
<var-name>cdnValue</var-name>
<var-value>piggy</var-value>
</var>
<var>
<var-name>conditionMask</var-name>
<var-value>^\w*$</var-value>
</var>
</field>
The related part in validator-rules.xml:
<!--conditional mask, only tested when the value of condition property is
cdnValue -->
<validator name="cdnmask"
classname="org.apache.struts.webapp.validator.Cvalidator"
method="validateCdnMask"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.invalid">
<javascript><![CDATA[
function validateCdnMask(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oMask = new cdnmask();
for ( x in oMask ) {
var conditionProperty = oMask[x][2]("cdnProperty");
var conditionValue = oMask[x][2]("cdnValue");
var mask = oMask[x][2]("conditionMask");
alert(" the mask at first (mask) is " + mask );
if ( (form[conditionProperty].value == conditionValue) && (
form[oMask[x][0]].value != '' ) && (!matchPattern2(form[oMask[x][0]].value,
oMask[x][2]("conditionMask"))) ) {
if (i == 0) {
focusField = form[oMask[x][0]];
}
fields[i++] = oMask[x][1];
bValid = false;
}
}
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
}
return bValid;
}
function matchPattern2(value, mask) {
alert("the string for mask is " + mask);
var mask2 = new RegExp(mask);
var bMatched = mask2.exec(value);
if (!bMatched) {
return false;
}
return true;
}]]>
</javascript>
</validator>
---------------------------------------------------------------------
To unsubscribe, e-mail: struts-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-dev-help@jakarta.apache.org