javascript - 自动选择另一个下拉菜单的下拉选项

标签 javascript php jquery wordpress

我有三个下拉菜单,但我需要根据 1 中的选择自动选择 2 和 3。为此我使用数据级属性(因为我将用于其他目的的值)。

<label>Dimensiones</label>
<span class="wpcf7-form-control-wrap dimensiones">
    <!-- Dropdown Master or 1 -->
    <select name="dimensiones" id="dimensiones" class="wpcf7-select quoteform">
        <option value="" selected="selected" data-level="0">Seleccione una opción</option>
        <option value="20 x 60 x 45" data-level="1">20 x 60 x 45</option>
        <option value="30 x 10 x 50" data-level="2">30 x 10 x 50</option>
        <option value="10 x 10 x 30" data-level="3">10 x 10 x 30</option>
    </select>
</span>
<label>Peso</label><br>
<span class="wpcf7-form-control-wrap pesos">
    <!-- Dropdown slave or 2 -->
    <select name="pesos" id="pesos" class="wpcf7-select quoteform">
        <option value="" selected="selected" data-level="0">Seleccione una opción</option>
        <option value="400" data-level="1">400</option>
        <option value="320" data-level="2">320</option>
        <option value="100" data-level="3">100</option>
    </select>
</span>
<label>Codigos</label><br>
<span class="wpcf7-form-control-wrap codigos">
    <!-- Dropdown slave or 3 -->
    <select name="codigos" id="codigos" class="wpcf7-select quoteform">
        <option value="" selected="selected" data-level="0">Seleccione una opción</option>
        <option value="A123" data-level="1">A123</option>
        <option value="A263" data-level="2">A263</option>
        <option value="A555" data-level="3">A555</option>
    </select>
</span>

这个代码段不起作用

$("select[name=dimensiones], select[name=pesos], select[name=codigos]").change(function() {
    var value = element.data('level');

    $("select[name=dimensiones], select[name=pesos], select[name=codigos]").not(this).val(value);
});

例如:

在 master 下拉列表中我有食物,在 slave 1 中我有饮料,在 slave 2 中我有甜点

饮料和甜点将根据食物选择。如果您选择食物选项一,您会自动选择饮料选项一和甜点选项一。

最佳答案

在您的情况下,您可以使用 :selected selector 在 jQuery 中选择选项如下:$(this).find(":selected")。因此,代码将是:

$("select[name=dimensiones], select[name=pesos], select[name=codigos]").change(function() {
  var level = $(this).find(":selected").data('level');
  $("select[name=dimensiones], select[name=pesos], select[name=codigos]").not(this).each(function() {
    $(this).find(':selected').prop('selected', false);
    $(this).find("[data-level='" + level + "']").prop('selected', true);
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>Dimensiones</label>
<span class="wpcf7-form-control-wrap dimensiones">
    <!-- Dropdown Master or 1 -->
    <select name="dimensiones" id="dimensiones" class="wpcf7-select quoteform">
        <option value="" selected="selected" data-level="0">Seleccione una opción</option>
        <option value="20 x 60 x 45" data-level="1">20 x 60 x 45</option>
        <option value="30 x 10 x 50" data-level="2">30 x 10 x 50</option>
        <option value="10 x 10 x 30" data-level="3">10 x 10 x 30</option>
    </select>
</span>
<label>Peso</label><br>
<span class="wpcf7-form-control-wrap pesos">
    <!-- Dropdown slave or 2 -->
    <select name="pesos" id="pesos" class="wpcf7-select quoteform">
        <option value="" selected="selected" data-level="0">Seleccione una opción</option>
        <option value="400" data-level="1">400</option>
        <option value="320" data-level="2">320</option>
        <option value="100" data-level="3">100</option>
    </select>
</span>
<label>Codigos</label><br>
<span class="wpcf7-form-control-wrap codigos">
    <!-- Dropdown slave or 3 -->
    <select name="codigos" id="codigos" class="wpcf7-select quoteform">
        <option value="" selected="selected" data-level="0">Seleccione una opción</option>
        <option value="A123" data-level="1">A123</option>
        <option value="A263" data-level="2">A263</option>
        <option value="A555" data-level="3">A555</option>
    </select>
</span>

关于javascript - 自动选择另一个下拉菜单的下拉选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47044532/

相关文章:

javascript - 通过ajax从输入获取变量到外部php

php - 如何提高分页速度

JavaScript jQuery 三元或 .val() 运算符问题

javascript - 如何使用 jQuery 在 DOM 元素中添加非值属性

javascript - setTimeout 不适用于 node.js

当新行添加到数据库时,Javascript 发出警报

javascript - 将变量同时用作函数和对象实例

php - 我坚持我的 SELECT sql 查询

jquery - 通过 Ajax 调用 MVC 时模型为 Null?

javascript - 在ready上使用jquery而不是call函数有什么好处