0

我有以下代码:

   <label for="ItemCountry">Country <span class="req">*</span></label>
    <select name="ItemCountry" id="ItemCountry" class="cat_dropdown" />
     <option value="AU" selected="selected">Australia</option>
     <option value="CA">Canada</option>
     <option value="CN">China</option>
     <option value="NZ">New Zealand</option>
     <option value="RU">Russia</option>
     <option value="US">United State</option>
   </select>
<script type="text/javascript">
$(function() {
$('#ItemCountry').change(function() {
var CountryVal = this.value; // value of the select element
$("#StateFeeder").html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
$('#StateFeeder').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-'+CountryVal);
})
})               
</script>

<div id="StateFeeder">
  <label for="ItemState">State / Province <span class="req">*</span></label>
  <select name="ItemState" id="ItemState" class="cat_dropdown">
    <option value="">-- Please select --</option>
    <option value="NSW">NSW</option>
    <option value="VIC">VIC</option>
    <option value="QLD">QLD</option>
    <option value="ACT">ACT</option>
    <option value="TAS">TAS</option>
    <option value="WA">WA</option>
    <option value="SA">SA</option>
    <option value="NT">NT</option>
  </select>e.g. NSW
</div>

<script type="text/javascript">
 $(function() {
     $('#ItemState').change(function() {
         var StateVal = this.value; // value of the select element
         $("#CityFeeder").html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
         $('#CityFeeder').load('/Country/'+CountryVal+'/_'+CountryVal+'_suburbs.html #Suburbs-'+StateVal, function(){
         $('#CityFeeder select').attr('size', '5');
         $('#CityFeeder select').change(function(){  this.form['CAT_Custom_221342'].value=$(this).val();
         }); });        
     })
  })               
</script>
    <div id="CityFeeder">
    <label for="ItemCity">City / Suburb <span class="req">*</span></label>
    <input type="text" name="ItemCity" id="ItemCity" class="cat_textbox" maxlength="255" style="text-transform: capitalize;" />e.g. Chatswood
    </div>

最后一部分不起作用,它假设将状态选择的值传递到 url 以加载从远程 url 中的状态块存储的某些城市下拉列表,似乎“CountryVal”没有将值带入该 url,请帮我纠正一下,非常感谢:

$('#CityFeeder').load('/Country/'+CountryVal+'/_'+CountryVal+'_suburbs.html #Suburbs-'+StateVal, function(){
    $('#CityFeeder select').attr('size', '5');
    $('#CityFeeder select').change(function(){
        this.form['CAT_Custom_221342'].value=$(this).val();
    }); 
}); 
4

1 回答 1

1

您必须将 $('#ItemState').change(function(){...}) 移动到 $('#StateFeeder').load("..") 内,以便在第一次加载完成时,它将更改事件绑定到新的 dom 元素。还尝试将所有脚本包含在 $(document).ready(function(){...}) 下的单个标记中

<label for="ItemCountry">Country <span class="req">*</span></label>
<select name="ItemCountry" id="ItemCountry" class="cat_dropdown" />
    <option value="AU" selected="selected">Australia</option>
    <option value="CA">Canada</option>
    <option value="CN">China</option>
    <option value="NZ">New Zealand</option>
    <option value="RU">Russia</option>
    <option value="US">United State</option>
</select>

<div id="StateFeeder">
    <label for="ItemState">State / Province <span class="req">*</span></label>
    <select name="ItemState" id="ItemState" class="cat_dropdown">
        <option value="">-- Please select --</option>
        <option value="NSW">NSW</option>
        <option value="VIC">VIC</option>
        <option value="QLD">QLD</option>
        <option value="ACT">ACT</option>
        <option value="TAS">TAS</option>
        <option value="WA">WA</option>
        <option value="SA">SA</option>
        <option value="NT">NT</option>
    </select>e.g. NSW
</div>

<div id="CityFeeder">
    <label for="ItemCity">City / Suburb <span class="req">*</span></label>
    <input type="text" name="ItemCity" id="ItemCity" class="cat_textbox" maxlength="255" style="text-transform: capitalize;" />e.g. Chatswood
</div>

<script type="text/javascript">
var CountryVal;
var StateVal;
$(document).ready(function(){
    $('#ItemCountry').change(function(){
        CountryVal = this.value; // value of the select element
        $("#StateFeeder").html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
        $('#StateFeeder').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-'+CountryVal, function(){
            $('#ItemState').change(function(){
                StateVal = this.value; // value of the select element
                $("#CityFeeder").html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
                $('#CityFeeder').load('/Country/'+CountryVal+'/_'+CountryVal+'_suburbs.html #Suburbs-'+StateVal, function(){
                    $('#CityFeeder select').attr('size', '5');
                    $('#CityFeeder select').change(function(){  
                        this.form['CAT_Custom_221342'].value=$(this).val();
                    }); 
                });        
            })
        });
    });
});           
</script>
于 2012-09-03T06:41:07.937 回答