jquery根据菜单onchange值加载页面元素

时间:2012-08-18 13:06:50

标签: jquery if-statement option onchange

我有2个下拉菜单,我想要这个:当我在名为“ItemCountry”的下拉菜单中选择选项时,div id =“StateFeeder”将根据第一个中的值在另一个页面中加载某个下拉菜单菜单。

这是第一个菜单:

<label for="ItemCountry">Country <span class="req">*</span></label>
<select name="ItemCountry" id="ItemCountry" class="cat_dropdown" onblur="StateFeeder()">
    <option value=" ">-- Select Country --</option>
    <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">
    <div>
        <label for="ItemState">State <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>

我写的jquery但它不起作用:

<script type="text/javascript">
    $(function() {
        $('#ItemCountry').change(function() {
            if (document.ItemCountry.selectedIndex == 'AU') {
                $("#StateFeeder").empty().html('<img src="/images/mapCountry /AU/ajaxloader.gif" class="IMG-Loading" />');
                $('#StateFeeder>div').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-AU');
            };
            if (document.ItemCountry.selectedIndex == 'CA') {
                $("#StateFeeder>div").empty().html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
                $('#StateFeeder').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-CA');
            };
            if (document.ItemCountry.selectedIndex == 'CN') {
                $("#StateFeeder").empty().html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
                $('#StateFeeder').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-CN');
            };
            if (document.ItemCountry.selectedIndex == 'NZ') {
                $("#StateFeeder").empty().html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
                $('#StateFeeder').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-NZ');
            };
            if (document.ItemCountry.selectedIndex == 'RU') {
                $("#StateFeeder").empty().html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
                $('#StateFeeder').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-RU');
            };
            if (document.ItemCountry.selectedIndex == 'US') {
                $("#StateFeeder").empty().html('<img src="/images/mapCountry/AU/ajax-loader.gif" class="IMG-Loading" />');
                $('#StateFeeder').load('/StateFeeder/StateFeeder-Buy.html #StateFeeder-US');
            };
        });
    });
</script>

2 个答案:

答案 0 :(得分:1)

selectedIndex返回所选选项的索引,您应该使用value属性:

 $(function() {
     $('#ItemCountry').change(function() {
         var val = 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-'+val);
     })
  })

答案 1 :(得分:0)

$('#ItemCountry').change(function() 
{
    /* Take the value of selected option */
    var value = $(this).val();

    /* Use this instead of lots of if statements */
    var str = '/StateFeeder/StateFeeder-Buy.html #StateFeeder-' + value;

    $('#StateFeeder').load(str);
});