2013-05-10 145 views
1

我正在使用genericlist獲取CodeIgniter中的下拉列表。未在下拉列表中選擇所選值

這裏是我的控制器代碼以獲得問題的狀態下拉列表:

$question_stat= $this->mdl_mcb_data->getStatusOptions ('ques_status');  
array_unshift($question_stat,$this->mdl_html->option('','Select Question Status')); 
$active = 1; 
$question_status = $this->mdl_html->genericlist($question_stat,"question_status",array('class'=>''),'value','text',$active); 

這是我的看法頁部分:

<tr> 
     <th><label><?php echo $this->lang->line('status'); ?>: </label></th> 
     <td><?php echo $question_status;?></td> 
</tr> 

當我使用Firebug查看HTML部分,它顯示:

<tr> 
    <th> 
    <label>Question Status: </label> 
    </th> 
    <td> 
     <select id="question_status" class="validate[required] text-input" name="question_status"> 
      <option value="">Select Question Status</option> 
      <option value="0">Inactive</option> 
      <option selected="selected" value="1">Active</option> 
     </select> 
    </td> 
</tr> 

這就是我要選擇什麼。但在下拉列表中,所選值不會顯示爲選中狀態。

注:

無碼錯誤的。 Firebug顯示所選的理想結果。 但是,在下拉列表中,未選擇所選值。可能是什麼原因?

+0

不能是這個小片段中的錯誤。它在jsFiddle中工作正常。你有一些JS可能會影響這個嗎?然而,那麼現場代碼(而不是原始代碼)仍然應該顯示在Firebug中並顯示錯誤。 – Lukas 2013-05-10 09:42:41

+0

沒有。在視圖頁面的頂部,只有'$(document).ready(function()'函數,但是沒有影響下拉列表的參數。 – 2013-05-10 10:00:35

+0

當你檢查這個時,你是否正在做一個簡單的重載F5)還是整頁重新加載(Shift + F5)?在進行簡單的重新加載時,Firefox將保留已更改的表單元素的狀態(例如選擇),而完全重新加載會將它們重置爲默認值,如HTML中所指定的。 – Samutz 2013-05-10 14:35:35

回答

0

我對自己的問題提出了棘手的解決方案。我只是在視圖頁面的頂部添加以下代碼:

<script language="javascript"> 
$(document).ready(function(){ 
    cancel(); 
    showquestionList(); 
    $('#question_status').val('1');  
    $("#frm_question").validationEngine('attach', { 
     onValidationComplete: function(form, status){ if(status==true){savequestion();}} 
    }); 
}) 

</script> 

在這裏,我所做的就是我剛纔添加的代碼下面一行:

$('#question_status').val('1');

它完美地工作。

+0

這不是一個解決方案,老實說,它只是一個補丁因爲它「覆蓋」了問題,但並沒有真正解決問題。 – 2013-05-14 10:24:22

+0

是的......這只是一個棘手的解決方案,我做了很多研究,但找不到最好的解決方案.. :)什麼可能是最好的解決方案? ? – 2013-05-14 10:29:26

+0

我認爲問題在別的地方,而不是你發佈的地方。嘗試使用其他瀏覽器和/或其他機器的代碼 – 2013-05-14 11:37:37