jquery - 根据列表中的选择选项刷新下拉列表

标签 jquery

我真的需要帮助。我是jQuery新手,我正在尝试刷新下拉列表或在选择列表中的选项时更改其值。

HTML

<select name="State_locate" class="State">
    <option value=" " selected="selected">Select a state</option>
    <option value="AL">Alabama</option>
    <option value="AK">Alaska</option>
</select>
<div id="City_1" class="Alabama">
    <select name="City_location[]" class="CityExt">
        <option value="Null" selected="selected">Select a city</option>
        <option value="Avondale">Avondale</option>
        <option value="Buckeye">Buckeye</option>
        <option value="Catalina">Catalina</option>
    </select>
</div>
<div id="City_1" class="Alaska">
    <select name="City_location[]" class="CityExt">
        <option value="Null" selected="selected">Select a city</option>
        <option value="Lancaster">Lancaster</option>
        <option value="Soth">Soth</option>
        <option value="Foothills">Foothills</option>
    </select>
</div>

JS

// JavaScript Document

$("select").bind("change", function () {

    if ($(this).val() == "AL") {
        $(".Alabama").slideDown();

        $(".Alaska").slideUp(function () {

            if ($('.Alabama').is(':visible')) {
                $(".Alaska option[value='Lancaster']").attr('selected', 'selected')
            }
        });
    } else if ($(this).val() == "AK") {
        $(".Alaska").slideDown();
        $(".Alabama").slideUp();
    }
})

我想做的是,当选择一个州时,然后一个城市就会下降。效果很好。但提交后,城市的值将存储在数组 City_location[] 中。

我遇到的问题是,如果用户选择阿拉斯加的一个城市,然后在提交表单之前选择阿拉巴马州下的另一个城市,则最终会在数组中出现阿拉巴马州和阿拉斯加下的两个城市。

如果选择了阿拉巴马州,我正在寻找一种为阿拉斯加州选择值“Null”的方法。但我的代码不起作用。仅当该值不是“Null”时它才有效。例如,如果我在 jQuery 代码的这一部分中使用值“Lancaster”

$(".Alaska option[value='Lancaster']").attr('selected', 'selected')

它只能工作一次。如果我执行两次,它就不会更新。我该如何解决这个问题。

抱歉代码太长。感谢您的帮助。

最佳答案

你可以这样做:

$('.state').on('change',function() {
   $('.CityExt').val('');
}

然后,每当州选择发生更改时,它都会将两个城市选择的值设置为空。

关于jquery - 根据列表中的选择选项刷新下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19474014/

相关文章:

javascript - 从 css 类中提取 id 值到 javascript 变量

javascript - 如何将CSS添加到Javascript中?

jquery - Bootstrap 4.3.0 工具提示与 jQuery UI 1.12.1 冲突

jquery - 一些 Pyramid + AJAX (Jquery) 问题

jquery - 如何阻止花车和类(class)相互推倒?

javascript - .remove() 在 IE 和 Firefox 中不起作用

javascript - 当元素改变时如何执行函数? (没有设置间隔)

javascript - jQuery:当文本输入的值以任何方式改变时如何创建函数

javascript 不更新 p 标签的数据

javascript - 操作 jQuery 时出现错误 : "jQuery requires a window and a document"