当另一个 select 下拉列表中的一个选项被 select 编辑时,如何显示 select 下拉列表
How do I display a select dropdown list when one option on another select dropdown is selected
我想在另一个 select 元素的选项被 selected 时显示一个 select 元素,而在另一个选项被 selected 时隐藏它。
更具体地说,我有 3 个下拉菜单,一个用于国家/地区,一个用于 province/state,一个用于城市。我希望在国家/地区为美国时显示城市下拉列表,并且下拉列表应根据州 selected。我还希望在加拿大 selected 时城市下拉列表消失,而不管省份 selected。
到目前为止,我已经 state/provinces 根据国家/地区进行更改,但我不知道如何在 selected 加拿大时删除整个城市元素。
我在 jsFiddle 中有这个 - https://jsfiddle.net/jascd6ue/
这是我的selecthtml代码
Country:
<select name="country" class="country">
<option value="Canada">Canada</option>
<option value="United_States">United States</option>
</select>
<br>Province/State:
<select name="pro" class="pro">
<option value="BC">British Columbia</option>
<option value="Ontario">Ontario</option>
</select>
这是 Javascript:
$('.country').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
if(valueSelected == "Canada") {
$('.pro').html('<option value ="BC">British Columbia</option><option value="Ontario">Ontario</option>');
// remove the city <select> dropdown
} else if (valueSelected == "United_States") {
$('.pro ').html('<option value ="FL">Florida</option><option value="NY">New York</option>');
}
});
$('.pro').on('change', function (e) {
var optionSelectedb = $("option:selected", this);
var valueSelectedb = this.value;
if(valueSelectedb == "Florida") {
// write <select name="city" class="city"><option value="Miami">Miami</option><option value="Orlando">Orlando</option> </select>
} else if(valueSelectedb == "New York") {
// write <select name="city" class="city"><option value="New York">New York</option><option value="Buffalo">Buffalo</option></select>
}
});
感谢任何帮助。谢谢
https://jsfiddle.net/jascd6ue/1/
$('.country').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
if (valueSelected == "Canada") {
$('.pro').html('<option value ="BC">British Columbia</option><option value="Ontario">Ontario</option>');
// remove the city <select> dropdown
} else if (valueSelected == "United_States") {
$('.pro ').html('<option value ="FL">Florida</option><option value="NY">New York</option>');
}
});
$('.pro').on('change', function (e) {
var optionSelectedb = $("option:selected", this);
var valueSelectedb = this.value;
console.log(valueSelectedb);
$(".city option").remove();
if (valueSelectedb == "FL") {
$(".city").append("<option value=\"Miami\">Miami</option><option value=\"Orlando\">Orlando</option>");
} else if (valueSelectedb == "NY") {
$(".city").append("<option value=\"New York\">New York</option><option value=\"Buffalo\">Buffalo</option></select>");
}
});
不过我会更改此代码。您可以编写包含所有州和城市的数组,然后使用循环生成选项
我想在另一个 select 元素的选项被 selected 时显示一个 select 元素,而在另一个选项被 selected 时隐藏它。
更具体地说,我有 3 个下拉菜单,一个用于国家/地区,一个用于 province/state,一个用于城市。我希望在国家/地区为美国时显示城市下拉列表,并且下拉列表应根据州 selected。我还希望在加拿大 selected 时城市下拉列表消失,而不管省份 selected。
到目前为止,我已经 state/provinces 根据国家/地区进行更改,但我不知道如何在 selected 加拿大时删除整个城市元素。
我在 jsFiddle 中有这个 - https://jsfiddle.net/jascd6ue/
这是我的selecthtml代码
Country:
<select name="country" class="country">
<option value="Canada">Canada</option>
<option value="United_States">United States</option>
</select>
<br>Province/State:
<select name="pro" class="pro">
<option value="BC">British Columbia</option>
<option value="Ontario">Ontario</option>
</select>
这是 Javascript:
$('.country').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
if(valueSelected == "Canada") {
$('.pro').html('<option value ="BC">British Columbia</option><option value="Ontario">Ontario</option>');
// remove the city <select> dropdown
} else if (valueSelected == "United_States") {
$('.pro ').html('<option value ="FL">Florida</option><option value="NY">New York</option>');
}
});
$('.pro').on('change', function (e) {
var optionSelectedb = $("option:selected", this);
var valueSelectedb = this.value;
if(valueSelectedb == "Florida") {
// write <select name="city" class="city"><option value="Miami">Miami</option><option value="Orlando">Orlando</option> </select>
} else if(valueSelectedb == "New York") {
// write <select name="city" class="city"><option value="New York">New York</option><option value="Buffalo">Buffalo</option></select>
}
});
感谢任何帮助。谢谢
https://jsfiddle.net/jascd6ue/1/
$('.country').on('change', function (e) {
var optionSelected = $("option:selected", this);
var valueSelected = this.value;
if (valueSelected == "Canada") {
$('.pro').html('<option value ="BC">British Columbia</option><option value="Ontario">Ontario</option>');
// remove the city <select> dropdown
} else if (valueSelected == "United_States") {
$('.pro ').html('<option value ="FL">Florida</option><option value="NY">New York</option>');
}
});
$('.pro').on('change', function (e) {
var optionSelectedb = $("option:selected", this);
var valueSelectedb = this.value;
console.log(valueSelectedb);
$(".city option").remove();
if (valueSelectedb == "FL") {
$(".city").append("<option value=\"Miami\">Miami</option><option value=\"Orlando\">Orlando</option>");
} else if (valueSelectedb == "NY") {
$(".city").append("<option value=\"New York\">New York</option><option value=\"Buffalo\">Buffalo</option></select>");
}
});
不过我会更改此代码。您可以编写包含所有州和城市的数组,然后使用循环生成选项