BUG 11951 "Los campos requeridos que aceptan caracteres..." SOLVED

- Los campos requeridos que aceptan caracteres alfanumericos, no validan los espacios.
- Problema resuelto, en los campos requeridos de tipo alfanumericos, se validan los espacios en blanco si son
  ingresados como unico valor en el campo.
* Available from version ProcessMaker-2.5.1-testing.2
This commit is contained in:
Luis Fernando Saisa Lopez
2013-05-31 17:11:20 +00:00
parent a1d3071db1
commit 33bf6357c5
2 changed files with 58 additions and 40 deletions

View File

@@ -2811,11 +2811,12 @@ var validateGridForms = function(invalidFields){
}
for(j=0; j<grids.length; j++){
fields = grids[j].getElementsByTagName('input');
for(i=0; i<fields.length; i++){
var vtext = new input(fields[i]);
if (fields[i].getAttribute("pm:required")=="1"&&fields[i].value==''){
if (fields[i].getAttribute("pm:required") == "1" && fields[i].value.trim() == "") {
$label = fields[i].name.split("[");
$labelPM = fields[i].getAttribute("pm:label");
if ($labelPM == '' || $labelPM == null){
@@ -2838,12 +2839,13 @@ var validateGridForms = function(invalidFields){
textAreas = grids[j].getElementsByTagName('textarea');
for(i=0; i<textAreas.length; i++){
var vtext = new input(textAreas[i]);
if (textAreas[i].getAttribute("pm:required")=="1"&&textAreas[i].value==''){
if (textAreas[i].getAttribute("pm:required") == "1" && textAreas[i].value.trim() == "") {
$label = textAreas[i].name.split("[");
$labelPM = textAreas[i].getAttribute("pm:label");
if ($labelPM == '' || $labelPM == null){
if ($labelPM == '' || $labelPM == null) {
$fieldName = $label[3].split("]")[0]+ " " + $label[2].split("]")[0];
}else{
} else {
$fieldName = $labelPM + " " + $label[2].split("]")[0];
}
fieldGridName = $label[1] + "[" + $label[2] + "[" + $label[3].split("]")[0];
@@ -2862,12 +2864,12 @@ var validateGridForms = function(invalidFields){
for(i=0; i<dropdowns.length; i++){
var vtext = new input(dropdowns[i]);
if (dropdowns[i].getAttribute("pm:required")=="1"&&dropdowns[i].value==''){
if (dropdowns[i].getAttribute("pm:required") == "1" && dropdowns[i].value.trim() == "") {
$label = dropdowns[i].name.split("[");
$labelPM = dropdowns[i].getAttribute("pm:label");
if ($labelPM == '' || $labelPM == null){
if ($labelPM == '' || $labelPM == null) {
$fieldName = $label[3].split("]")[0]+ " " + $label[2].split("]")[0];
}else{
} else {
$fieldName = $labelPM + " " + $label[2].split("]")[0];
}
fieldGridName = $label[1] + "[" + $label[2] + "[" + $label[3].split("]")[0];
@@ -2952,44 +2954,52 @@ var validateForm = function(sRequiredFields) {
switch(aRequiredFields[i].type) {
case 'suggest':
var vtext1 = new input(getField(aRequiredFields[i].name+'_label'));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vtext1.failed();
} else {
vtext1.passed();
}
break;
case 'text':
var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vtext.failed();
}
else {
vtext.failed();
} else {
vtext.passed();
}
break;
case 'dropdown':
var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vtext.failed();
} else {
vtext.passed();
}
break;
case 'textarea':
var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vtext.failed();
} else {
vtext.passed();
}
break;
case 'password':
var vpass = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vpass.failed();
} else {
@@ -2999,7 +3009,8 @@ var validateForm = function(sRequiredFields) {
case 'currency':
var vcurr = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vcurr.failed();
} else {
@@ -3009,7 +3020,8 @@ var validateForm = function(sRequiredFields) {
case 'percentage':
var vper = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vper.failed();
} else {
@@ -3019,25 +3031,30 @@ var validateForm = function(sRequiredFields) {
case 'yesno':
var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vtext.failed();
} else {
vtext.passed();
}
break;
case 'date':
var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vtext.failed();
} else {
vtext.passed();
}
break;
case 'file':
var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if (getField(aRequiredFields[i].name).value.trim() == "") {
invalid_fields.push(aRequiredFields[i].label);
vtext.failed();
} else {
@@ -3090,7 +3107,7 @@ var validateForm = function(sRequiredFields) {
}
}
if(validate != '') {
if (validate != '') {
//validate_fields
switch(aRequiredFields[i].type) {
case 'suggest':
@@ -3098,14 +3115,16 @@ var validateForm = function(sRequiredFields) {
case 'text':
if(validate == "Email") {
if (validate == "Email") {
var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value!='') {
if (getField(aRequiredFields[i].name).value.trim() != "") {
var email = getField(aRequiredFields[i].name);
//var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
//var filter = /^[\w\_\-\.çñ]{2,255}@[\w\_\-]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/;
var filter =/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
if (!filter.test(email.value)&&email.value!="") {
if (!filter.test(email.value.trim()) && email.value != "") {
fielEmailInvalid.push(aRequiredFields[i].label);
vtext.failed();
email.focus();

View File

@@ -1190,13 +1190,13 @@ node=document;if(tag==null)
tag='*';var els=node.getElementsByTagName(tag);var elsLen=els.length;var pattern=new RegExp("(^|\\s)"+searchClass+"(\\s|$)");for(i=0,j=0;i<elsLen;i++){if(pattern.test(els[i].className)){classElements[j]=els[i];j++;}}
return classElements;}
var validateGridForms=function(invalidFields){grids=getElementsByClassNameCrossBrowser("grid",document,"div");Tlabels=getElementsByClassNameCrossBrowser("tableGrid",document,"table");nameGrid="";for(cnt=0;cnt<Tlabels.length;cnt++){if(Tlabels[cnt].getAttribute("name")){nameGrid=Tlabels[cnt].getAttribute("name");if(notValidateThisFields.inArray(nameGrid)){return invalidFields;}}}
for(j=0;j<grids.length;j++){fields=grids[j].getElementsByTagName('input');for(i=0;i<fields.length;i++){var vtext=new input(fields[i]);if(fields[i].getAttribute("pm:required")=="1"&&fields[i].value==''){$label=fields[i].name.split("[");$labelPM=fields[i].getAttribute("pm:label");if($labelPM==''||$labelPM==null){$fieldName=$label[3].split("]")[0]+" "+$label[2].split("]")[0];}else{$fieldName=$labelPM+" "+$label[2].split("]")[0];}
for(j=0;j<grids.length;j++){fields=grids[j].getElementsByTagName('input');for(i=0;i<fields.length;i++){var vtext=new input(fields[i]);if(fields[i].getAttribute("pm:required")=="1"&&fields[i].value.trim()==""){$label=fields[i].name.split("[");$labelPM=fields[i].getAttribute("pm:label");if($labelPM==''||$labelPM==null){$fieldName=$label[3].split("]")[0]+" "+$label[2].split("]")[0];}else{$fieldName=$labelPM+" "+$label[2].split("]")[0];}
fieldGridName=$label[1]+"["+$label[2]+"["+$label[3].split("]")[0];if(!notValidateThisFields.inArray(fieldGridName)){invalidFields.push($fieldName);}
vtext.failed();}else{vtext.passed();}}
textAreas=grids[j].getElementsByTagName('textarea');for(i=0;i<textAreas.length;i++){var vtext=new input(textAreas[i]);if(textAreas[i].getAttribute("pm:required")=="1"&&textAreas[i].value==''){$label=textAreas[i].name.split("[");$labelPM=textAreas[i].getAttribute("pm:label");if($labelPM==''||$labelPM==null){$fieldName=$label[3].split("]")[0]+" "+$label[2].split("]")[0];}else{$fieldName=$labelPM+" "+$label[2].split("]")[0];}
textAreas=grids[j].getElementsByTagName('textarea');for(i=0;i<textAreas.length;i++){var vtext=new input(textAreas[i]);if(textAreas[i].getAttribute("pm:required")=="1"&&textAreas[i].value.trim()==""){$label=textAreas[i].name.split("[");$labelPM=textAreas[i].getAttribute("pm:label");if($labelPM==''||$labelPM==null){$fieldName=$label[3].split("]")[0]+" "+$label[2].split("]")[0];}else{$fieldName=$labelPM+" "+$label[2].split("]")[0];}
fieldGridName=$label[1]+"["+$label[2]+"["+$label[3].split("]")[0];if(!notValidateThisFields.inArray(fieldGridName)){invalidFields.push($fieldName);}
vtext.failed();}else{vtext.passed();}}
dropdowns=grids[j].getElementsByTagName('select');for(i=0;i<dropdowns.length;i++){var vtext=new input(dropdowns[i]);if(dropdowns[i].getAttribute("pm:required")=="1"&&dropdowns[i].value==''){$label=dropdowns[i].name.split("[");$labelPM=dropdowns[i].getAttribute("pm:label");if($labelPM==''||$labelPM==null){$fieldName=$label[3].split("]")[0]+" "+$label[2].split("]")[0];}else{$fieldName=$labelPM+" "+$label[2].split("]")[0];}
dropdowns=grids[j].getElementsByTagName('select');for(i=0;i<dropdowns.length;i++){var vtext=new input(dropdowns[i]);if(dropdowns[i].getAttribute("pm:required")=="1"&&dropdowns[i].value.trim()==""){$label=dropdowns[i].name.split("[");$labelPM=dropdowns[i].getAttribute("pm:label");if($labelPM==''||$labelPM==null){$fieldName=$label[3].split("]")[0]+" "+$label[2].split("]")[0];}else{$fieldName=$labelPM+" "+$label[2].split("]")[0];}
fieldGridName=$label[1]+"["+$label[2]+"["+$label[3].split("]")[0];if(!notValidateThisFields.inArray(fieldGridName)){invalidFields.push($fieldName);}
vtext.failed();}else{vtext.passed();}}}
return(invalidFields);};var swSubmitValidateForm=1;var validateForm=function(sRequiredFields){if(swSubmitValidateForm==1){swSubmitValidateForm=0;sFormName=document.getElementById('__DynaformName__');if((typeof(sFormName)!='undefined'&&sFormName!='login')&&(typeof(__usernameLogged__)!='undefined'&&__usernameLogged__!='')){if(!sessionPersits()){showPromptLogin('session');swSubmitValidateForm=1;return false;}}
@@ -1204,17 +1204,16 @@ if(typeof(sRequiredFields)!='object'||sRequiredFields.indexOf("%27")>0){sRequire
if(typeof(sRequiredFields)!='object'||sRequiredFields.indexOf("%39")>0){sRequiredFields=sRequiredFields.replace(/%39/gi,"'");}
aRequiredFields=eval(sRequiredFields);var sMessage='';var invalid_fields=Array();var fielEmailInvalid=Array();for(var i=0;i<aRequiredFields.length;i++){aRequiredFields[i].label=(aRequiredFields[i].label=='')?aRequiredFields[i].name:aRequiredFields[i].label;if(!notValidateThisFields.inArray(aRequiredFields[i].name)){if(typeof aRequiredFields[i].required!='undefined'){required=aRequiredFields[i].required;}else{required=1;}
if(typeof aRequiredFields[i].validate!='undefined'){validate=aRequiredFields[i].validate;}else{validate='';}
if(required==1){switch(aRequiredFields[i].type){case'suggest':var vtext1=new input(getField(aRequiredFields[i].name+'_label'));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vtext1.failed();}else{vtext1.passed();}
break;case'text':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}
else{vtext.passed();}
break;case'dropdown':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'textarea':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'password':var vpass=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vpass.failed();}else{vpass.passed();}
break;case'currency':var vcurr=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vcurr.failed();}else{vcurr.passed();}
break;case'percentage':var vper=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vper.failed();}else{vper.passed();}
break;case'yesno':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'date':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'file':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value==''){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
if(required==1){switch(aRequiredFields[i].type){case'suggest':var vtext1=new input(getField(aRequiredFields[i].name+'_label'));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vtext1.failed();}else{vtext1.passed();}
break;case'text':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'dropdown':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'textarea':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'password':var vpass=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vpass.failed();}else{vpass.passed();}
break;case'currency':var vcurr=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vcurr.failed();}else{vcurr.passed();}
break;case'percentage':var vper=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vper.failed();}else{vper.passed();}
break;case'yesno':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'date':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'file':var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()==""){invalid_fields.push(aRequiredFields[i].label);vtext.failed();}else{vtext.passed();}
break;case'listbox':var oAux=getField(aRequiredFields[i].name);var bOneSelected=false;for(var j=0;j<oAux.options.length;j++){if(oAux.options[j].selected){bOneSelected=true;j=oAux.options.length;}}
if(bOneSelected==false)
invalid_fields.push(aRequiredFields[i].label);break;case'radiogroup':var x=aRequiredFields[i].name;var oAux=document.getElementsByName('form['+x+']');var bOneChecked=false;for(var k=0;k<oAux.length;k++){var r=oAux[k];if(r.checked){bOneChecked=true;k=oAux.length;}}
@@ -1222,7 +1221,7 @@ if(bOneChecked==false)
invalid_fields.push(aRequiredFields[i].label);break;case'checkgroup':var bOneChecked=false;var aAux=document.getElementsByName('form['+aRequiredFields[i].name+'][]');for(var k=0;k<aAux.length;k++){if(aAux[k].checked){bOneChecked=true;k=aAux.length;}}
if(!bOneChecked){invalid_fields.push(aRequiredFields[i].label);}
break;}}
if(validate!=''){switch(aRequiredFields[i].type){case'suggest':break;case'text':if(validate=="Email"){var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value!=''){var email=getField(aRequiredFields[i].name);var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;if(!filter.test(email.value)&&email.value!=""){fielEmailInvalid.push(aRequiredFields[i].label);vtext.failed();email.focus();}else{vtext.passed();}}}
if(validate!=''){switch(aRequiredFields[i].type){case'suggest':break;case'text':if(validate=="Email"){var vtext=new input(getField(aRequiredFields[i].name));if(getField(aRequiredFields[i].name).value.trim()!=""){var email=getField(aRequiredFields[i].name);var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;if(!filter.test(email.value.trim())&&email.value!=""){fielEmailInvalid.push(aRequiredFields[i].label);vtext.failed();email.focus();}else{vtext.passed();}}}
break;}}}}
invalid_fields=validateGridForms(invalid_fields);if(invalid_fields.length>0||fielEmailInvalid.length>0){for(j=0;j<invalid_fields.length;j++){sMessage+=(j>0)?', ':'';sMessage+=invalid_fields[j];}
var emailInvalidMessage="";for(j=0;j<fielEmailInvalid.length;j++){emailInvalidMessage+=(j>0)?', ':'';emailInvalidMessage+=fielEmailInvalid[j];}