Javascript 如何使用jQuery在表单中显示更多选项?
假设您有一个表单:Javascript 如何使用jQuery在表单中显示更多选项?,javascript,jquery,css,html,Javascript,Jquery,Css,Html,假设您有一个表单: <form> <select name="cars"> <option value="all">All Cars</option> <option value="volvo">Volvo</option> <option value="audi">Audi</option> </select> <select name="vo
<form>
<select name="cars">
<option value="all">All Cars</option>
<option value="volvo">Volvo</option>
<option value="audi">Audi</option>
</select>
<select name="volvo_dealers">
<option value="dealer1">Volvo Dealer 1</option>
<option value="dealer2">Volvo Dealer 2</option>
</select>
<select name="audi_dealers">
<option value="dealer1">Audi Dealer 1</option>
<option value="dealer2">Audi Dealer 2</option>
</select>
<input type="submit" value="Submit">
</form>
所有汽车
沃尔沃汽车
奥迪
沃尔沃经销商1
沃尔沃经销商2
奥迪经销商1
奥迪经销商2
但是,在选择了沃尔沃或奥迪之后,您只想显示两个“经销商”选择选项中的一个。显示的内容当然取决于在“汽车”选择选项中选择的沃尔沃和奥迪
对于这个小问题,什么可能是一个好方法
雷加德斯,
比尔最自然的做法是一次只显示对应的经销商,而隐藏其他经销商:
$('.cars').change(function() {
$('.dialers').hide().filter('[name="' + $(this).val() + '_dealers"]').show();
});
因此,如果我选择奥迪,我只想看到奥迪经销商,我不需要其他经销商。鉴于您的标记,您可以这样做
$(function(){
$("select[name=cars]").change(function(){
if ($(this).val() == "volvo") {
$("select[name=volvo_dealers]").show();
$("select[name=audi_dealers]").hide();
} else if (($(this).val() == "audi")) {
$("select[name=audi_dealers]").show();
$("select[name=volvo_dealers]").hide();
} else {
$("select[name=volvo_dealers]").hide();
$("select[name=audi_dealers]").hide();
}
});
$("select[name=cars]").trigger("change");
});
这里是有一种方法可以做到这一点,而无需添加多个id(且无类别),如果需要,还可以添加更多经销商。首先,您需要使用css隐藏经销商选择下拉列表 然后将“cars”的id添加到cars选项中:
<select name="cars" id="cars">
<option value="all">All Cars</option>
<option value="volvo">Volvo</option>
<option value="audi">Audi</option>
</select>
一些答案已经为您提供了脚本,可以对表单执行您想要的操作。但这是我为您的标记编写的脚本版本。 在这里检查一个例子 该脚本比其他脚本大,但效果很好。此脚本基于一个基本原则运行。它首先检查cars下拉菜单的值,并根据所选选项显示或隐藏其他下拉菜单
$('#cars option').click(function(){
var car = $(this).attr('value');
$('select.' + car + '_dealers').show();
});
$(document).ready(function(){
$('form').change(function(){
var selectOp = $("form select[name='cars']").val();
switch(selectOp) {
case 'volvo' :
$("form select[name='audi_dealers']").hide();
$("form select[name='volvo_dealers']").show();
break;
case 'audi':
$("form select[name='volvo_dealers']").hide();
$("form select[name='audi_dealers']").show();
break;
case 'all' :
$("form select[name='audi_dealers']").show();
$("form select[name='audi_dealers']").show();
break;
}
});
});