2012-06-23 39 views
0

我想要一個啓用/禁用文本框的複選框。一旦複選框,文本框被啓用,得到文本字段的值,並設置用於相應下拉選項的數目,使用TextField設置DropDown的選項值

例如:如果文本字段具有值4,則下拉選項應爲1 2 3 4

我有以下代碼。請幫我解決它,謝謝。

CakePHP的形式

echo $this->Form->checkbox('custom_lvl_def', array('hiddenField' =>  false,'OnClick'=>"enable_disable()")); 
echo "Use custom level definitions"."&nbsp"; 
echo $this->Form->input('alternative_no_of_levels', array('style'=>'width:70px','label'=>'levels','div'=>false, 'disabled'=>TRUE)); 
echo "<br>"; 

echo $this->Form->input('dropdown', array(
    'options'=>$options, 
    'empty' => 'Select Level', 
    'label'=>'Type:', 
    'selected'=>'Select Level', 
    'style'=>'width:130px', 
    'div'=>false 
)); 

JavaScript函數

function enable_disable() 
{   
    if($('#CompetenceCustomLvlDef').attr('checked')) 
     {    
      $('#CompetenceAlternativeNoOfLevels').removeAttr("disabled"); 
      // var $a=array ('Level'); 
      var value = $('#CompetenceAlternativeNoOfLevels').val(); 
      for (var i = 0; i < value; i++) { 
       $('#CompetenceDropdown').options[i].selected = i;   
      return; }   
     } 
    else     
      $('#CompetenceAlternativeNoOfLevels').attr('disabled', true); 

} 
+0

是否在select(下拉列表)的值預設和文本字段限制多少顯示,還是它們是按照你在問題中提出的建議生成的?有沒有選擇選項的數據源? – Stecman

+0

發佈源代碼html,而不是php,當你需要javascript幫助 – charlietfl

+0

對文本字段的限制是1-9,我們在文本字段1-9之間選擇什麼,它也應該是選擇的數量,因爲我想返回它們 –

回答

1

這可以幫助你獲得下拉列表的數組您輸入的級別數。 按您可以在形式試試這個問題..

echo $this->Form->checkbox('custom_lvl_def', array('hiddenField' => false,'id'=>'id_custom_lvl_def', 'onclick'=>"javascript:enable_disable()")); 
echo "Use custom level definitions"."&nbsp"; 
echo $this->Form->input('alternative_no_of_levels', array('style'=>'width:70px','id'=>'id_alternative_no_of_levels','label'=>'levels','onblur'=>'javascript:enable_disable();', 'div'=>false,)); 
echo "<br>"; 
echo $this->Form->input('dropdown', array(
    'options'=>'', 
    'empty' => 'Select Level', 
    'label'=>'Type:', 
    'type'=>'select', 
    'id'=>'id_dropdown', 
    'name'=>'dropdown', 
    'style'=>'width:130px', 
    'div'=>false 
)); 

在腳本:

function enable_disable() 
{   
    $("#id_dropdown").empty(); 
    if($('#id_custom_lvl_def').attr('checked')) 
    {    
     $('#id_alternative_no_of_levels').removeAttr("disabled"); 
     var value = $('#id_alternative_no_of_levels').val(); 
     var optionsAsString = ""; 
     optionsAsString += "<option value=''>" + "Select Level" + "</option>"; 
     for (var i = 1; i <= value; i++) { 
      optionsAsString += "<option value='" + i + "'>" + i + "</option>"; 
     }   
     $('select[name="dropdown"]').append($(optionsAsString)); 
    } 
    else     
     $('#id_alternative_no_of_levels').attr('disabled', true); 
}