2012-05-14 95 views
0

我似乎無法讓jQuery觸發並更改county_id選擇列表的更改事件。我已經嘗試了多個代碼片段,並且沒有人會發布更改。有任何想法嗎?更改事件不會觸發選擇列表

HTML:

<select id="county_id" name="county_id"> 
    <option value=""></option> 
    <option value="1">Somewhere</option> 
    <option value="2">Somewhere else</option> 
</select> 

<select id="vice_county_id" name="vice_county_id"></select> 

JS:

$(function(ready) { 
    $("#county_id").change(
      function() { 
       $("#vice_county_id").html(""); 
       var co_id = $("#county_id > option[@selected]").attr("value"); 
       if (co_id != 0) { 
        $.getJSON('./vice_county_web_service.php?co_id=' + co_id, 
          function(data) { 
           $.each(data, function() { 
            $("#vice_county_id").append(
              $("<option></option>").val(
                this['value']).html(
                this['name'])); 
           }); 
          }); 
       } 
      }); 

}); 
+0

您是否看到控制檯上有任何錯誤? –

回答

0

該事件被解僱,但此行的代碼失敗:

var co_id = $("#county_id > option[@selected]").attr("value"); 

...因爲這是一個無效的選擇。在瀏覽器的JavaScript控制檯中,您應該看到Syntax error, unrecognized expression: [@selected]

的jQuery會很樂意讓你的價值,只是用val

var co_id = $("#county_id").val(); 

Live example | source

+0

改變它非常感謝,我很感激。同樣來自T.J.的全文片段也在下面。如果我可以給你貼上標籤,我會。再次感謝。 – jiraiya

0

剛好足以讓選擇框的值

var co_id = $("#county_id").val(); 

您應該使用​​

$('#county_id').on('change', function() { 
    //.... 
    var co_id = $("#county_id").val(); 
}); 
0

嘗試:

$(document).ready(function(){ 
    $("#county_id").change(function() { 
     $("#vice_county_id").html(""); 
     var co_id = $(this).val(); 
     if(county_id != 0) { 
      $.getJSON('./vice_county_web_service.php?co_id=' + co_id,function(data) { 
       $.each(data, function() { 
        $("#vice_county_id").append($("<option></option>").val(this['value']).html(this['name'])); 
       }); 
      }); 
     } 
    }); 
}) 
+0

仍然有無效的選擇器。 –

+0

@ T.J.Crowder好吧,我通過'$(this).val();' – mgraph

-1
<select id="county_id" name="county_id" onchange="ChangeCountry();"> 

function ChangeCountry() 
{ 
    var _countryId = $('#county_id').val(); 
} 
0

變化`變種co_id = $( 「#county_id>選項[@selected]」)ATTR( 「值」);」 'var co_id = $(「#county_id> option:selected」)。attr(「value」);'

http://jsfiddle.net/XvRsV/

0

您的代碼工作正常,意味着改變事件得到通過代碼處理不當,請參閱本link

$(function(ready){ 
      $("#county_id").change(function() { 
       $("#vice_county_id").html("test"); 
       var co_id= $("#county_id").attr("value"); 
       alert('Value : ' +co_id); 
      if(co_id != 0) { 
       $.getJSON('./vice_county_web_service.php?co_id=' + co_id,function(data) {  
        $.each(data, function() { 
         $("#vice_county_id").append($("<option></option>").val(this['value']).html(this['name'])); 
        }); 
       }); 
      } 
     }); 

    });​ 

只更改此行,

VAR co_id = $( 「#county_id」 ).attr( 「值」);

只需檢查您的ajax呼叫是否正常工作

相關問題