developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Ticket #781: 781-jForms-javascript-check-for-multiple-selection-controls-fails.2.diff

File 781-jForms-javascript-check-for-multiple-selection-controls-fails.2.diff, 3.4 KB (added by Julien, 12 years ago)
  • lib/jelix-www/js/jforms_light.js

     
    7070                if (!elt) continue; // sometimes, all controls are not generated...
    7171                var val = this.getValue(elt);
    7272            }
    73             var trimVal = val;
    74             if (val.replace)
    75                 var trimVal = val.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    76             if(trimVal == ''){
     73            if(val === '' || val === null || val === false){
    7774                if(c.required){
    7875                    this.tForm.errorDecorator.addError(c, 1);
    7976                    valid = false;
     
    9693                case "input":
    9794                    if(elt.getAttribute('type') == 'checkbox')
    9895                        return elt.checked;
    99                     return elt.value;
     96                    return elt.value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    10097                case "textarea":
    101                     return elt.value;
     98                    return elt.value.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
    10299                case "select":
    103100                    if (!elt.multiple)
    104101                        return elt.value;
     
    107104                        if (elt.options[i].selected)
    108105                            values.push(elt.options[i].value);
    109106                    }
     107                    if(!values.length)
     108                        return null;
    110109                    return values;
    111110            }
    112111        } else if(elt.item){
     
    117116                if (item.checked)
    118117                    values.push(item.value);
    119118            }
     119            if(!values.length)
     120                return null;
    120121            return values;
    121122        }
    122123        return '';
  • lib/jelix-www/js/jforms_jquery.js

     
    6161                if (!elt) continue; // sometimes, all controls are not generated...
    6262                var val = this.getValue(elt);
    6363            }
    64             if(jQuery.trim(val) === ''){
     64            if(val === '' || val === null || val === false){
    6565                if(c.required){
    6666                    this.tForm.errorDecorator.addError(c, 1);
    6767                    valid = false;
     
    8484                case "input":
    8585                    if(elt.getAttribute('type') == 'checkbox')
    8686                        return elt.checked;
    87                     return elt.value;
     87                    return jQuery.trim(elt.value);
    8888                case "textarea":
    89                     return elt.value;
     89                    return jQuery.trim(elt.value);
    9090                case "select":
    9191                    if (!elt.multiple)
    9292                        return elt.value;
     
    9595                        if (elt.options[i].selected)
    9696                            values.push(elt.options[i].value);
    9797                    }
     98                    if(!values.length)
     99                        return null;
    98100                    return values;
    99101            }
    100102        } else if(elt.item){
     
    105107                if (item.checked)
    106108                    values.push(item.value);
    107109            }
     110            if(!values.length)
     111                return null;
    108112            return values;
    109113        }
    110114        return '';