我已经设置了4个多个依赖的下拉字段。我想选择区域,然后是国家,拥有或特许经营,最后是商店名称。
我的问题: 1)显示/隐藏工作正常,但选择“ - ”时不重置值。这意味着我可以选择一个商店,然后改变我的意见,从上部字段类别中选择另一个选项并选择第二个商店。 POST将具有两个值。我想在选择其他选项时重置第一个值
2)商店名称具有所有名称属性store_name。当我使用implode()时,我无法在mysql db上正确记录它。
jQuery的:
$( document ).ready(function() {
$("#region").bind("change",function(){
var selectedValue=$(this).val().toLowerCase();
switch(selectedValue){
case "asia":
$("#country_asia").show();
$("#country_america").hide()
$("#country_europe").hide()
break;
case "america":
$("#country_asia").hide();
$("#country_america").show();
$("#country_europe").hide();
break;
case "europe":
$("#country_asia").hide();
$("#country_america").hide();
$("#country_europe").show();
break;
case "-":
$("#country_asia").hide()
$("#country_america").hide()
$("#country_europe").hide()
break;
}
});
$("#country_europe_dd").change(function()
{
var selectedValue=$(this).val().toLowerCase();
if(selectedValue == "greece")
{
$("#owned_gr").show();
}
else if(selectedValue == "-")
{
$("#owned_gr").hide();
}
})
$("#owned_gr_dd").change(function()
{
var selectedValue=$(this).val().toLowerCase();
if(selectedValue == "own")
{
$("#store_name").show();
$("#store_name_greece_fran").hide();
}
else if(selectedValue == "fran")
{
$("#store_name_greece_fran").show();
$("#store_name").hide();
}
else if(selectedValue == "-")
{
$("#store_name").hide();
$("#store_name_greece_fran").hide();
}
})
});
</script>
形式:
<div class="form-group region required" data-cid="region">
<label class="control-label" for="region">Region</label>
<div class="input-group"><span class="input-group-addon left"><i class="glyphicon glyphicon-pushpin"></i></span>
<select class="select form-control" onChange="displayForm(this)" id="region" name="region">
<option value="-">- Select -</option>
<option value="america">America</option>
<option value="asia">Asia</option>
<option value="europe">Europe</option>
</select>
</div>
</div>
<div id="country_europe" class="form-group country_europe required" style="display: none" data-cid="country_europe">
<label class="control-label" for="country">Country</label>
<div class="input-group"><span class="input-group-addon left"><i class="glyphicon glyphicon-pushpin"></i></span>
<select class="select form-control" id="country_europe_dd" name="country">
<option value="-">- Select -</option>
<option value="cyprus">Cyprus</option>
<option value="france">France</option>
<option value="germany">Germany</option>
<option value="greece">Greece</option>
<option value="iceland">Iceland</option>
<option value="italy">Italy</option>
<option value="netherlands">Netherlands</option>
<option value="norway">Norway</option>
<option value="serbia">Serbia</option>
<option value="switzerland">Switzerland</option>
</select>
</div>
</div>
<div id="owned_gr" class="form-group owned_gr required" style="display: none" data-cid="owned_gr">
<label class="control-label" for="owned_gr">Owned or Franchise ?</label>
<div class="input-group"><span class="input-group-addon left"><i class="glyphicon glyphicon-pushpin"></i></span>
<select class="select form-control" id="owned_gr_dd" name="owned">
<option value="-">- Select -</option>
<option value="own">Owned</option>
<option value="fran">Franchise</option>
</select>
</div>
</div>
<div id="store_name" class="form-group store_name required" style="display: none" data-cid="store_name">
<label class="control-label" for="store_name">Store Name - Greece (Owned)</label>
<div class="input-group"><span class="input-group-addon left"><i class="fa fa-buysellads"></i> </span>
<select class="form-control" name="store_name[]" id="store_name_gr_owned"
data-rule-required="true" >
<option value="-">- Select -</option>
<option value="option1">Option1</option>
<option value="option2">Option2</option>
</select>
</div>
</div>
<div id="store_name_greece_fran" class="form-group store_name_greece_fran required" style="display: none" data-cid="store_name_greece_fran">
<label class="control-label" for="store_name_greece_fran">Store Name - Greece (Franchise)</label>
<div class="input-group"><span class="input-group-addon left"><i class="fa fa-buysellads"></i> </span>
<select class="form-control" name="store_name[]" id="store_name_greece_fran"
data-rule-required="true" >
<option value="">- Select -</option>
<option value="athens">Athens</option>
<option value="crete">Crete</option>
</select>
</div>
</div>
PHP:
$store_name = implode($_POST['store_name']);
答案 0 :(得分:1)
编辑:从下面的评论中,解决#1的声音也将解决#2。
对于#1,每当hide
元素时,也将其值设置为-
。例如。
case "asia":
$("#country_asia").show();
$("#country_america").hide();
$("#country_america").val("-");
$("#country_europe").hide();
$("#country_europe").val("-");
break;
或者,使用vanilla JS:
document.getElementById("country_europe_dd").value = '-';
对于#2,我看不到你的代码有什么问题。你能详细说说吗?可能包括您 $store_name
所见的样本输出?
答案 1 :(得分:0)
我找到了解决方案。
我必须在jQuery上更进一步并使用val()。当我在选择
的字段上选择特定值时,我重置了其他类别值 $("#store_name_greece_fran_dd").change(function()
{
var selectedValue=$(this).val().toLowerCase();
if(selectedValue == "athens" || selectedValue == "athens" || selectedValue == "crete" || selectedValue == "crete")
{
$("#store_name_owned_dd").val('');
}
})