现在我有三个不同的选择框部分,无论如何都是州或省或地区......
我的表格是这样的......
国家[] 州/省[]
我通过选择不同国家/地区来更改州/省框中的默认信息,例如美国(纽约,佛罗里达州)加拿大(阿尔伯特,新斯科舍省)墨西哥(Yukatan,Northren)。
选择框墨西哥,美国,加拿大的每个部分都具有相同的名称,可以作为州/省提交到数据库中。但是,我相信它保留了我对其他国家的其他选择,即选择Alabama for USA,然后切换到加拿大并选择Alberta,它试图保存它们,我怎样才能选择只选择一个?< / p>
非常感谢你!
哦,这里有一些代码......
$(document).ready(function(){
$("#country").change(function()
{
$("#usStates").hide();
$("#caStates").hide();
$("#mexStates").hide();
if ($("#country").val() == 'United States'){
$("#usStates").show();
$("#caStates").hide();
$("#mexStates").hide();
$("#state1").val('');
}
if ($("#country").val() == 'Canada'){
$("#caStates").show();
$("#usStates").hide();
$("#mexStates").hide();
$("#state1").val('');
}
if ($("#country").val() == 'Mexico'){
$("#mexStates").show();
$("#caStates").hide();
$("#usStates").hide();
$("#state1").val('');
}
}); });
<div id="caStates" style="display: none;">
<div class="leftform">State / Province:</div>
<div class="rightform"><select class="select" style="width: 150px;" id="state1" name="state" size="1">
<option value=""></option>
<option value="Alberta">Alberta</option>
<option value="New Brunswick">New Brunswick</option>
<option value="Nova Scotia">Nova Scotia</option>
<option value="Prince Edward Island">Prince Edward Island</option>
<option value="British Columbia">British Columbia</option>
<option value="Newfoundland">Newfoundland</option>
<option value="Ontario">Ontario</option>
<option value="Quebec">Quebec</option>
<option value="Manitoba">Manitoba</option>
</select></div><br clear="all"/>
</div>
<div id="mexStates" style="display: none;">
<div class="leftform">State / Province:</div>
<div class="rightform"><select class="select" style="width: 150px;" id="state1" name="state" size="1">
<option value=""></option>
<option value="Baja California">Baja California</option>
<option value="Central Mexico">Central Mexico</option>
<option value="Gulf of Mexico">Gulf of Mexico</option>
<option value="Northern Mexico">Northern Mexico</option>
<option value="Mexico Pacific Coast">Mexico Pacific Coast</option>
<option value="Yucatan">Yucatan</option>
</select></div><br clear="all"/>
</div>
答案 0 :(得分:1)
您应该只使用一个<select id="state" name="state">
,并在每次导致<select>
字段onchange
事件时将<select id="country" name="country">
加载到{{1}}。
您可以从JSON文件加载更改,您可以在服务器上保留这些更改。
答案 1 :(得分:1)
问题是您必须禁用不想提交的控件。 用这个替换你的脚本,一切都将被修复:
$(document).ready(function(){
$("#country").change(function(){
//We first disable all, so we dont submit data for more than 1 country
$("#usStates, #caStates, #mexStates").hide().find("#state1").attr("disabled", true);
var $divSelectedStates;
if ($("#country").val() == 'United States')
$divSelectedStates = $("#usStates");
if ($("#country").val() == 'Canada')
$divSelectedStates = $("#caStates");
if ($("#country").val() == 'Mexico')
$divSelectedStates = $("#mexStates");
//We now enable only for the selected country
$divSelectedStates.show().find("#state1").attr("disabled", false).val('');
});
});
此代码中的主要更改(除了现在稍微短一点),我们禁用非选定的选项,因此未提交。
并且建议,不要在同一页面中使用重复的id。决不。这也引起了一个问题,但是现在用我给你看的代码修复了它。
希望这会有所帮助,科里。干杯:)