2012-05-14 4 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

Огромное спасибо, я ценю это. Кроме того, mgraph ниже для полного фрагмента с вводом также от T.J. Если бы я мог пометить вас обоими, я бы это сделал. Еще раз спасибо. – jiraiya

0

просто достаточно, чтобы получить значение поле выбора

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

Вы должны использовать on()

$('#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 ok Я меняю его на '$ (this) .val();' – mgraph

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

function ChangeCountry() 
{ 
    var _countryId = $('#county_id').val(); 
} 
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'])); 
        }); 
       }); 
      } 
     }); 

    });​ 

Изменение только эта линия,

вар co_id = $ («# county_id») .attr ("значение");

Просто проверьте, работает ли ваш вызов ajax или нет.