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;
case "Alpha":
if (keyCode==8) return true;
patron =/[A-Za-z\sáéíóúäëïöüñçÇÑ�É�ÓÚÄË�ÖÜ]/;
patron =/[A-Za-z\s?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????]/;
te = String.fromCharCode(keyCode);
return patron.test(te);
break;
case "AlphaNum":
if (keyCode==8) return true;
patron =/[A-Za-z0-9\sáéíóúäëïöüñçÇÑ�É�ÓÚÄË�ÖÜ]/;
patron =/[A-Za-z0-9\s?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????]/;
te = String.fromCharCode(keyCode);
return patron.test(te);
break;
@@ -773,10 +773,11 @@ function G_Text( form, element, name, type )
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(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";
return;
}
@@ -1891,9 +1892,29 @@ var validateForm = function(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+'_suggest'));
@@ -1905,39 +1926,14 @@ var validateForm = function(sRequiredFields) {
}
break;
case 'text':
var vtext = new input(getField(aRequiredFields[i].name));
if(getField(aRequiredFields[i].name).value=='') {
if(aRequiredFields[i].validate=="Email"&&aRequiredFields[i].required=='0'){
vtext.normal();
return true;
}
else {
invalid_fields.push(aRequiredFields[i].label);
vtext.failed();
}
} else {
if(aRequiredFields[i].validate=="Email") {
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}$/;
if (!filter.test(email.value)&&email.value!="") {
invalid_fields.push(aRequiredFields[i].label);
vtext.failed();
email.focus();
}
else {
vtext.passed();
}
}
else {
vtext.passed();
}
}
break;
case 'dropdown':
@@ -2064,28 +2060,114 @@ var validateForm = function(sRequiredFields) {
if(!bOneChecked) {
invalid_fields.push(aRequiredFields[i].label);
}
break;
}
}
if(validate != '') {
//validate_fields
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 = /^([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}$/;
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;
}
}
}
}
// call added by gustavo - cruz, gustavo-at-colosa.com validate grid forms
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);
// loop for invalid_fields
for(j=0; j<invalid_fields.length; j++){
sMessage += (j > 0)? ', ': '';
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({
label:G_STRINGS.ID_REQUIRED_FIELDS + ": <br/><br/>[ " + sMessage + " ]",
width:450,
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;
}
else {

View File

@@ -4150,19 +4150,28 @@ class XmlForm
$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
$isEditMode = isset($xmlNode[$k]->attributes['mode']) && $xmlNode[$k]->attributes['mode'] == 'view' ? false: true;
if ($xmlNode [$k]->attributes ['required'] == 1 && $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 ) );
if ($isEditMode && $this->mode != 'view') {
$validateValue = "";
if(isset($xmlNode[$k]->attributes['validate'])) {
$validateValue = $xmlNode[$k]->attributes['validate'];
}
else {
$isEditMode = isset($xmlNode[$k]->attributes['mode']) && $xmlNode[$k]->attributes['mode'] == 'view' ? false: true;
if (isset($xmlNode[$k]->attributes['validate']) && $xmlNode[$k]->attributes ['validate'] == "Email" && $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 ) );
$requiredValue = "0";
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
);
}
}