Changeset 642

Show
Ignore:
Timestamp:
11/13/07 22:56:41 (1 year ago)
Author:
laurentj
Message:

fixed bug #335: bug in jforms.js with IE, p=tefnout
fixed bug #315: an empty choice in a menulist was not created when the menulist is not required

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/jelix-www/js/jforms.js

    r615 r642  
    5151 
    5252    verifyForm : function(frmElt){ 
    53         var f = this._forms[frmElt.getAttribute('id')]; 
     53        var f = this._forms[frmElt.attributes.getNamedItem("id").value]; // we cannot use getAttribute for id because a bug with IE 
    5454        var msg = ''; 
    5555        var valid = true; 
  • trunk/lib/jelix-www/js/jforms.js

    r615 r642  
    5151 
    5252    verifyForm : function(frmElt){ 
    53         var f = this._forms[frmElt.getAttribute('id')]; 
     53        var f = this._forms[frmElt.attributes.getNamedItem("id").value]; // we cannot use getAttribute for id because a bug with IE 
    5454        var msg = ''; 
    5555        var valid = true; 
  • trunk/lib/jelix/forms/jFormsBuilderBase.class.php

    r624 r642  
    244244                    $value=''; 
    245245            } 
    246  
     246            if (!$ctrl->required) { 
     247                echo '<option value=""',($value==''?' selected="selected"':''),'></option>'; 
     248            } 
    247249            foreach($ctrl->datasource->getDatas() as $v=>$label){ 
    248250                echo '<option value="',htmlspecialchars($v),'"',($v==$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>'; 
  • trunk/lib/jelix/forms/jFormsBuilderBase.class.php

    r624 r642  
    244244                    $value=''; 
    245245            } 
    246  
     246            if (!$ctrl->required) { 
     247                echo '<option value=""',($value==''?' selected="selected"':''),'></option>'; 
     248            } 
    247249            foreach($ctrl->datasource->getDatas() as $v=>$label){ 
    248250                echo '<option value="',htmlspecialchars($v),'"',($v==$value?' selected="selected"':''),'>',htmlspecialchars($label),'</option>'; 
  • trunk/testapp/modules/jelix_tests/tests/jforms.htmlbuilder.html.php

    r610 r642  
    309309        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    310310        $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="1">'; 
     311        $result.='<option value=""></option>'; 
    311312        $result.='<option value="10">foo</option>'; 
    312313        $result.='<option value="11" selected="selected">bar</option>'; 
     
    332333        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    333334        $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" readonly="readonly" title="ceci est un tooltip" size="1">'; 
     335        $result.='<option value=""></option>'; 
    334336        $result.='<option value="10">foo</option>'; 
    335337        $result.='<option value="11" selected="selected">bar</option>'; 
     
    338340        $this->assertEqualOrDiff($result, $out); 
    339341 
     342        $ctrl->required = true; 
    340343        $this->form->setData('choixsimple',"23"); 
    341344        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     
    346349        $result.='</select>'; 
    347350        $this->assertEqualOrDiff($result, $out); 
     351     
     352        $ctrl->required = false; 
     353        $this->form->setData('choixsimple',""); 
     354        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     355        $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" readonly="readonly" title="ceci est un tooltip" size="1">'; 
     356        $result.='<option value="" selected="selected"></option>'; 
     357        $result.='<option value="10">foo</option>'; 
     358        $result.='<option value="11">bar</option>'; 
     359        $result.='<option value="23">baz</option>'; 
     360        $result.='</select>'; 
     361        $this->assertEqualOrDiff($result, $out); 
     362        $this->form->setData('choixsimple',"23"); 
    348363    } 
    349364 
  • trunk/testapp/modules/jelix_tests/tests/jforms.htmlbuilder.html.php

    r610 r642  
    309309        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    310310        $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" size="1">'; 
     311        $result.='<option value=""></option>'; 
    311312        $result.='<option value="10">foo</option>'; 
    312313        $result.='<option value="11" selected="selected">bar</option>'; 
     
    332333        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
    333334        $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" readonly="readonly" title="ceci est un tooltip" size="1">'; 
     335        $result.='<option value=""></option>'; 
    334336        $result.='<option value="10">foo</option>'; 
    335337        $result.='<option value="11" selected="selected">bar</option>'; 
     
    338340        $this->assertEqualOrDiff($result, $out); 
    339341 
     342        $ctrl->required = true; 
    340343        $this->form->setData('choixsimple',"23"); 
    341344        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     
    346349        $result.='</select>'; 
    347350        $this->assertEqualOrDiff($result, $out); 
     351     
     352        $ctrl->required = false; 
     353        $this->form->setData('choixsimple',""); 
     354        ob_start();$this->builder->outputControl($ctrl);$out = ob_get_clean(); 
     355        $result='<select name="choixsimple" id="'.$this->formname.'_choixsimple" readonly="readonly" title="ceci est un tooltip" size="1">'; 
     356        $result.='<option value="" selected="selected"></option>'; 
     357        $result.='<option value="10">foo</option>'; 
     358        $result.='<option value="11">bar</option>'; 
     359        $result.='<option value="23">baz</option>'; 
     360        $result.='</select>'; 
     361        $this->assertEqualOrDiff($result, $out); 
     362        $this->form->setData('choixsimple',"23"); 
    348363    } 
    349364 
Download in other formats: Unified Diff Zip Archive