我有三个下拉列表 ddl1、ddl2 和 ddl3。
现在,在选择 ddl1 的项目时,应填充 ddl2 和类似的 ddl3 中的相应项目。
例如:- 如果我在 ddl1 中选择“印度”,那么 ddl2 应该显示所有州,而 ddl3 应该显示印度国家的所有城市。我希望在没有任何数据库连接的情况下执行此操作(使用 Jquery)。请帮忙!!!。谢谢。
我有三个下拉列表 ddl1、ddl2 和 ddl3。
现在,在选择 ddl1 的项目时,应填充 ddl2 和类似的 ddl3 中的相应项目。
例如:- 如果我在 ddl1 中选择“印度”,那么 ddl2 应该显示所有州,而 ddl3 应该显示印度国家的所有城市。我希望在没有任何数据库连接的情况下执行此操作(使用 Jquery)。请帮忙!!!。谢谢。
如果您正在处理合理数量的数据,您可以将其编码到 javascript 对象中并使用它来填充您的下拉列表。看看这个小提琴。
var data = {
"India": {
"Cities" : ["Mumbai", "Delhi", "Bangalore"],
"States" : ["Bihar", "Goa", "Hayana"] },
"Japan": {
"Cities" : ["Tokyo", "Kyoto", "Nagoya"],
"States" : ["Miyagi", "Nara", "Tottori"] }
}
使用 jQuery 填充选择的方式将大致相同。
$.each(data, function (key, value) {
$('#ddl1').append($('<option>', {
value: key
}).text(key));
});
$('#ddl1').change(function () {
//empty lists 2 and 3
$('#ddl2').html("");
$('#ddl3').html("");
var option_selected = $('option:selected', this).val();
//populate ddl2
$.each(data[option_selected]['Cities'], function (index, element) {
$('#ddl2').append($('<option>', {
value: element
}).text(element));
});
//populate ddl3
$.each(data[option_selected]['States'], function (index, element) {
$('#ddl3').append($('<option>', {
value: element
}).text(element));
});
});
如果没有数据库连接,那么您需要使用数组或 json 字符串或隐藏的下拉菜单预先填充页面上所有可能的选项。
这会让你的页面有点重,但无论如何你可以在 javascript
countryOptions = {"Armenia", "Albania"....};
IndiaStates = {"State1", "State2"};
USAStates = {...};
/* All state dropdowns for all possible countries */
IndiaCities = {...};
USACities = {...};
BelgiumCities = {...};
然后一个函数
function populateDropdown(dropdownId, myOptions)
{
$.each(myOptions, function(val, text) {
$("#" + dropdownId).append(
$('<option></option>').val(val).html(text)
);
});
}
还有一个 changeEvent
$("#countryDropwDown").change(function(){
if($(this).val() == "India")
{
populateDropdown("StateDropDown", IndiaStates);
}
});
你为所有国家做这件事。
更聪明的解决方案是使用命名约定
XCountry、XState、XCity,然后使用此约定根据前缀 X 附加右侧下拉列表。