BUG 6900 Fixed the validation of the field email

The problem this solved for dynaform of the version old
This commit is contained in:
Douglas Medrano Chura
2011-06-14 11:57:13 -04:00
parent 73fe3d723e
commit d202addecd
2 changed files with 277 additions and 186 deletions

View File

@@ -456,13 +456,13 @@ function G_Text( form, element, name, type )
break; break;
case "Alpha": case "Alpha":
if (keyCode==8) return true; if (keyCode==8) return true;
patron =/[A-Za-z\sáéíóúäëïöüñçÇÑ�É�ÓÚÄË�ÖÜ]/; patron =/[A-Za-z\s?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????]/;
te = String.fromCharCode(keyCode); te = String.fromCharCode(keyCode);
return patron.test(te); return patron.test(te);
break; break;
case "AlphaNum": case "AlphaNum":
if (keyCode==8) return true; if (keyCode==8) return true;
patron =/[A-Za-z0-9\sáéíóúäëïöüñçÇÑ�É�ÓÚÄË�ÖÜ]/; patron =/[A-Za-z0-9\s?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????]/;
te = String.fromCharCode(keyCode); te = String.fromCharCode(keyCode);
return patron.test(te); return patron.test(te);
break; break;
@@ -773,10 +773,11 @@ function G_Text( form, element, name, type )
if(this.validate=="Email") if(this.validate=="Email")
{ {
var pat=/^[\w\_\-\.çñ]{2,255}@[\w\_\-]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/; var pat=/^[\w\_\-\.????????????????]{2,255}@[\w\_\-]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/;
if(!pat.test(this.element.value)) if(!pat.test(this.element.value))
{ {
if(this.required=="0"&&this.element.value=="") { //old|if(this.required=="0"&&this.element.value=="") {
if(this.element.value=="") {
this.element.className="module_app_input___gray"; this.element.className="module_app_input___gray";
return; return;
} }
@@ -1891,201 +1892,282 @@ var validateForm = function(sRequiredFields) {
var sMessage = ''; var sMessage = '';
var invalid_fields = Array(); var invalid_fields = Array();
for (var i = 0; i < aRequiredFields.length; i++) { var fielEmailInvalid = Array();
aRequiredFields[i].label=(aRequiredFields[i].label=='')?aRequiredFields[i].name:aRequiredFields[i].label;
if (!notValidateThisFields.inArray(aRequiredFields[i].name)) { for (var i = 0; i < aRequiredFields.length; i++) {
switch(aRequiredFields[i].type) { aRequiredFields[i].label=(aRequiredFields[i].label=='')?aRequiredFields[i].name:aRequiredFields[i].label;
case 'suggest':
var vtext1 = new input(getField(aRequiredFields[i].name+'_suggest')); if (!notValidateThisFields.inArray(aRequiredFields[i].name)) {
if(getField(aRequiredFields[i].name).value==''){
invalid_fields.push(aRequiredFields[i].label); if (typeof aRequiredFields[i].required != 'undefined'){
vtext1.failed(); required = aRequiredFields[i].required;
} else { }
vtext1.passed(); else {
required = 1;
} }
break;
case 'text':
var vtext = new input(getField(aRequiredFields[i].name)); if (typeof aRequiredFields[i].validate != 'undefined') {
validate = aRequiredFields[i].validate;
}
else {
validate = '';
}
if(getField(aRequiredFields[i].name).value==''){ if(required == 1)
if(aRequiredFields[i].validate=="Email"&&aRequiredFields[i].required=='0'){ {
vtext.normal(); switch(aRequiredFields[i].type) {
return true; case 'suggest':
} var vtext1 = new input(getField(aRequiredFields[i].name+'_suggest'));
else { if(getField(aRequiredFields[i].name).value==''){
invalid_fields.push(aRequiredFields[i].label); invalid_fields.push(aRequiredFields[i].label);
vtext.failed(); vtext1.failed();
} } else {
vtext1.passed();
} else { }
break;
if(aRequiredFields[i].validate=="Email") { case 'text':
var email = getField(aRequiredFields[i].name); var vtext = new input(getField(aRequiredFields[i].name));
//var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if(getField(aRequiredFields[i].name).value=='') {
var filter = /^[\w\_\-\.çñ]{2,255}@[\w\_\-]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/;
if (!filter.test(email.value)&&email.value!="") {
invalid_fields.push(aRequiredFields[i].label); invalid_fields.push(aRequiredFields[i].label);
vtext.failed(); vtext.failed();
email.focus();
} }
else { else {
vtext.passed(); vtext.passed();
} }
} break;
else {
vtext.passed();
}
} case 'dropdown':
break; 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': 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 '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();
}
var vtext = new input(getField(aRequiredFields[i].name)); break;
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 'password': case 'currency':
var vpass = new input(getField(aRequiredFields[i].name)); var vcurr = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value==''){ if(getField(aRequiredFields[i].name).value==''){
invalid_fields.push(aRequiredFields[i].label); invalid_fields.push(aRequiredFields[i].label);
vpass.failed(); vcurr.failed();
} else { } else {
vpass.passed(); vcurr.passed();
} }
break; break;
case 'currency': case 'percentage':
var vcurr = new input(getField(aRequiredFields[i].name)); var vper = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value==''){ if(getField(aRequiredFields[i].name).value==''){
invalid_fields.push(aRequiredFields[i].label); invalid_fields.push(aRequiredFields[i].label);
vcurr.failed(); vper.failed();
} else { } else {
vcurr.passed(); vper.passed();
} }
break; break;
case 'percentage': case 'yesno':
var vper = new input(getField(aRequiredFields[i].name)); var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value==''){ if(getField(aRequiredFields[i].name).value==''){
invalid_fields.push(aRequiredFields[i].label); invalid_fields.push(aRequiredFields[i].label);
vper.failed(); vtext.failed();
} else { } else {
vper.passed(); vtext.passed();
} }
break; break;
case 'yesno': case 'date':
var vtext = new input(getField(aRequiredFields[i].name)); var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value==''){ if(getField(aRequiredFields[i].name).value==''){
invalid_fields.push(aRequiredFields[i].label); invalid_fields.push(aRequiredFields[i].label);
vtext.failed(); vtext.failed();
} else { } else {
vtext.passed(); vtext.passed();
} }
break; break;
case 'date': case 'file':
var vtext = new input(getField(aRequiredFields[i].name)); var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value==''){ if(getField(aRequiredFields[i].name).value==''){
invalid_fields.push(aRequiredFields[i].label); invalid_fields.push(aRequiredFields[i].label);
vtext.failed(); vtext.failed();
} else { } else {
vtext.passed(); vtext.passed();
} }
break; break;
case 'file': case 'listbox':
var vtext = new input(getField(aRequiredFields[i].name)); var oAux = getField(aRequiredFields[i].name);
if(getField(aRequiredFields[i].name).value==''){ var bOneSelected = false;
invalid_fields.push(aRequiredFields[i].label); for (var j = 0; j < oAux.options.length; j++) {
vtext.failed(); if (oAux.options[j].selected) {
} else { bOneSelected = true;
vtext.passed(); j = oAux.options.length;
} }
break; }
if(bOneSelected == false)
invalid_fields.push(aRequiredFields[i].label);
break;
case 'listbox': case 'radiogroup':
var oAux = getField(aRequiredFields[i].name); var x=aRequiredFields[i].name;
var bOneSelected = false; var oAux = document.getElementsByName('form['+ x +']');
for (var j = 0; j < oAux.options.length; j++) { var bOneChecked = false;
if (oAux.options[j].selected) { for (var k = 0; k < oAux.length; k++) {
bOneSelected = true; var r = oAux[k];
j = oAux.options.length; if (r.checked) {
} bOneChecked = true;
} k = oAux.length;
if(bOneSelected == false) }
invalid_fields.push(aRequiredFields[i].label); }
break;
case 'radiogroup': if(bOneChecked == false)
var x=aRequiredFields[i].name; invalid_fields.push(aRequiredFields[i].label);
var oAux = document.getElementsByName('form['+ x +']');
var bOneChecked = false; break;
for (var k = 0; k < oAux.length; k++) {
var r = oAux[k]; case 'checkgroup':
if (r.checked) { var bOneChecked = false;
bOneChecked = true; var aAux = document.getElementsByName('form[' + aRequiredFields[i].name + '][]');
k = oAux.length; 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(bOneChecked == false) if(validate != '') {
invalid_fields.push(aRequiredFields[i].label); //validate_fields
switch(aRequiredFields[i].type) {
case 'suggest':
break;
break; case 'text':
case 'checkgroup': if(validate=="Email") {
var bOneChecked = false; var vtext = new input(getField(aRequiredFields[i].name));
var aAux = document.getElementsByName('form[' + aRequiredFields[i].name + '][]'); if(getField(aRequiredFields[i].name).value!='') {
for (var k = 0; k < aAux.length; k++) { var email = getField(aRequiredFields[i].name);
if (aAux[k].checked) { //var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
bOneChecked = true; var filter = /^[\w\_\-\.????????????????]{2,255}@[\w\_\-]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/;
k = aAux.length; if (!filter.test(email.value)&&email.value!="") {
} fielEmailInvalid.push(aRequiredFields[i].label);
vtext.failed();
email.focus();
}
else {
vtext.passed();
}
}
}
break;
case 'dropdown':
break;
case 'textarea':
break;
case 'password':
break;
case 'currency':
break;
case 'percentage':
break;
case 'yesno':
break;
case 'date':
break;
case 'file':
break;
case 'listbox':
break;
case 'radiogroup':
break;
case 'checkgroup':
break;
}
} }
if(!bOneChecked) { }
invalid_fields.push(aRequiredFields[i].label);
}
break;
} }
}
}
// call added by gustavo - cruz, gustavo-at-colosa.com validate grid forms // call added by gustavo - cruz, gustavo-at-colosa.com validate grid forms
invalid_fields = validateGridForms(invalid_fields); invalid_fields = validateGridForms(invalid_fields);
if (invalid_fields.length > 0) { if (invalid_fields.length > 0 ||fielEmailInvalid.length> 0) {
//alert(G_STRINGS.ID_REQUIRED_FIELDS + ": \n\n" + sMessage); //alert(G_STRINGS.ID_REQUIRED_FIELDS + ": \n\n" + sMessage);
// loop for invalid_fields
for(j=0; j<invalid_fields.length; j++){ for(j=0; j<invalid_fields.length; j++){
sMessage += (j > 0)? ', ': ''; sMessage += (j > 0)? ', ': '';
sMessage += invalid_fields[j]; sMessage += invalid_fields[j];
} }
// Loop for invalid_emails
var emailInvalidMessage = "";
for(j=0; j<fielEmailInvalid.length; j++){
emailInvalidMessage += (j > 0)? ', ': '';
emailInvalidMessage += fielEmailInvalid[j];
}
/* new leimnud.module.app.alert().make({ /* new leimnud.module.app.alert().make({
label:G_STRINGS.ID_REQUIRED_FIELDS + ": <br/><br/>[ " + sMessage + " ]", label:G_STRINGS.ID_REQUIRED_FIELDS + ": <br/><br/>[ " + sMessage + " ]",
width:450, width:450,
height:140 + (parseInt(invalid_fields.length/10)*10) height:140 + (parseInt(invalid_fields.length/10)*10)
});*/ });*/
alert(G_STRINGS.ID_REQUIRED_FIELDS + ": \n \n [ " + sMessage + " ]"); //!create systemMessaggeInvalid of field invalids
var systemMessaggeInvalid = "";
if(invalid_fields.length > 0) {
systemMessaggeInvalid += "\n \n"+G_STRINGS.ID_REQUIRED_FIELDS + ": \n \n [ " + sMessage + " ]";
}
if(fielEmailInvalid.length > 0) {
systemMessaggeInvalid += "\n \n" + G_STRINGS.ID_VALIDATED_FIELDS + ": \n \n [ " + emailInvalidMessage + " ]";
}
alert(systemMessaggeInvalid);
return false; return false;
} }
else { else {

View File

@@ -4150,19 +4150,28 @@ class XmlForm
$this->fields [$field->name] = $field; $this->fields [$field->name] = $field;
} }
if (isset ( $xmlNode [$k]->attributes ['required'] )) { if (isset($xmlNode [$k]->attributes ['required'] ) || isset($xmlNode [$k]->attributes ['validate'] )) {
// the fields or xml nodes with a required attribute are put in an array that is passed to the view file // the fields or xml nodes with a required attribute are put in an array that is passed to the view file
$isEditMode = isset($xmlNode[$k]->attributes['mode']) && $xmlNode[$k]->attributes['mode'] == 'view' ? false: true; $isEditMode = isset($xmlNode[$k]->attributes['mode']) && $xmlNode[$k]->attributes['mode'] == 'view' ? false: true;
if ($xmlNode [$k]->attributes ['required'] == 1 && $isEditMode && $this->mode != 'view') { if ($isEditMode && $this->mode != 'view') {
$this->requiredFields [] = array ('name' => $field->name, 'type' => $xmlNode [$k]->attributes ['type'], 'label' => trim ( $field->label ), 'validate' => isset($field->validate)?trim ( $field->validate ):"",'required' => trim ( $field->required ) );
} $validateValue = "";
else { if(isset($xmlNode[$k]->attributes['validate'])) {
$isEditMode = isset($xmlNode[$k]->attributes['mode']) && $xmlNode[$k]->attributes['mode'] == 'view' ? false: true; $validateValue = $xmlNode[$k]->attributes['validate'];
if (isset($xmlNode[$k]->attributes['validate']) && $xmlNode[$k]->attributes ['validate'] == "Email" && $isEditMode && $this->mode != }
'view') { $requiredValue = "0";
$this->requiredFields [] = array ('name' => $field->name, 'type' => $xmlNode [$k]->attributes ['type'], 'label' => trim ( $field->label ), 'validate' => isset($field->validate)?trim ( $field->validate ):"",'required' => trim ( $field->required ) ); if(isset($xmlNode[$k]->attributes['required'])) {
} $requiredValue = $xmlNode[$k]->attributes['required'] == 1 ? '1': '0';
}
$this->requiredFields [] = array (
'name' => $field->name,
'type' => $xmlNode [$k]->attributes ['type'],
'label' => trim ( $field->label ),
'validate' => $validateValue,
'required' => $requiredValue
);
} }
} }