多组具有相同名称的选择框=

时间:2011-04-29 08:07:52

标签: php jquery mysql select

现在我有三个不同的选择框部分,无论如何都是州或省或地区......

我的表格是这样的......

国家[] 州/省[]

我通过选择不同国家/地区来更改州/省框中的默认信息,例如美国(纽约,佛罗里达州)加拿大(阿尔伯特,新斯科舍省)墨西哥(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>

2 个答案:

答案 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。决不。这也引起了一个问题,但是现在用我给你看的代码修复了它。

希望这会有所帮助,科里。干杯:)