将选择值传递给另一个选择标记

Passing select value to another select tag

本文关键字:选择 另一个 值传      更新时间:2023-09-26

我使用Materialize CSS作为我的CSS框架,我还浪费了1小时在google/stackoverflow等搜索答案。但是我似乎找不到解决这个问题的答案。我要做的是把Select 1的值传递给Select 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>

提前感谢那些将回答和帮助我的人!

使用事件委托来监听Accounts select上的更改:

$("#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);
});

查看jsFiddle的工作示例。

Materialize CSS在呈现组件时对DOM进行了大量修改,有时会对部分break中的UI元素进行直接的JavaScript操作。