2016-10-16 58 views
1

我使用Materialise CSS作爲我的CSS框架,我也浪費了1個小時在google/stackoverflow中搜索答案等。但我似乎無法找到解決此問題的答案。所以,我在做什麼是我試圖通過選擇1的值來選擇2.這是我下面傳遞選擇值到另一個選擇標記

碼選擇1:

<select id="Accounts"> 
    <option value="">Choose Account to edit</option> 
    <?php 
     $query = "SELECT * FROM personnel_list WHERE status = ?"; 
     $result = $this->db->query($query, array("Active"))->result_array(); 
     foreach ($result as $row) { 
      extract($row); 
      echo "<option value=\"$id-$name-$position-$status\">$name</option>"; 
     } 
    ?> 
</select> 

選擇2:

<select id="editPosition"> 
    <option value="">Choose Position</option> 
     <?php 
      $Position = array("Manager", "Supervisor", "Assistant Manager", "Assistant Supervisor") 
      for ($x=0; $x < count($Position); $x++) { 
       echo "<option value=\"$Position[$x]\">$Position[$x]</option>"; 
      } 
     ?> 
</select> 
<label for="editPosition">Position:</label> 

JS:

$("#Accounts").change(function(){ 
var accval = $(this).val().split("-"); 
var id  = accval[0]; 
var name = accval[1]; 
var post = accval[2]; 
var status = accval[3]; 

$("#editPosition").val(post); 
}) 

其它JS,我已經試過是:

$("#editPosition option[value='"+post+"']").prop("selected", true); 

渲染選擇1:

<select id="Accounts"> 
<option value="">Choose Account to edit</option> 
<option value="1-John-Manager-Active">John</option><option value="2-Mark-Assistant Manager-Active">Mark</option> 
</select> 

渲染選擇2:

<select id="editPosition"> 
<option value="">Choose Position</option> 
<option value="Manager">Manager</option> 
<option value="Supervisor">Supervisor</option> 
<option value="Assistant Manager">Assistant Manager</option> 
<option value="Assistant Supervisor">Assistant Supervisor</option> 
</select> 

預先感謝那些誰將會回答和幫助我!

+0

顯示渲染html。 – BenG

+0

@GentiSaliu你好,你是什麼意思? value屬性中的變量不是空的。我通過將它們放在alert()1上來檢查它們。看來問題不在那裏,而是在我的js代碼中。 – Akio

+0

@BenG更新,請檢查 – Akio

回答

2

使用事件代表團聽取有關Accounts變化選擇,而不是:

$("#Accounts").on("change", function(){ 
    var accval = $(this).val().split("-"); 
    var id  = accval[0]; 
    var name = accval[1]; 
    var post = accval[2]; 
    var status = accval[3]; 

    $("#editPosition").val(post); 
}); 

的工作示例見this jsFiddle

Materialise CSS在呈現其組件時會對DOM做很多修改,有時會在零件中斷時對UI元素進行直接的JavaScript操作。

+1

Oml。這解決了我的問題! Tysm!我也意識到這個問題在實現,但我似乎無法找到答案。再次感謝您的幫助!榮譽! – Akio

+0

實際上,如果使用事件委派,則不需要重新初始化選擇。稍後更新我的答案。 –

相關問題