0

jQuery を起動して、county_id 選択リストの変更イベントを発生させることができないようです。複数のコード スニペットを試しましたが、on change を起動するものはありません。何か案は?

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']));
                                });
                            });
                }
            });

});
4

6 に答える 6

0

選択ボックスの値を取得するのに十分

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

on()を使用する必要があります

$('#county_id').on('change', function() {
  //....
  var co_id = $("#county_id").val(); 
});
于 2012-05-14T09:48:07.100 に答える
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']));
                });
            });
        }
    });
})
于 2012-05-14T09:48:29.407 に答える
0

`var co_id = $("#county_id> option [@selected] ")。attr(" value ");'を変更します to'var co_id = $( "#county_id> option:selected")。attr( "value");'

http://jsfiddle.net/XvRsV/

于 2012-05-14T09:48:51.437 に答える
0

イベントは発生していますが、次のコード行は失敗しています。

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

...それは無効なセレクターだからです。ブラウザのJavaScriptコンソールに、が表示されているはずですSyntax error, unrecognized expression: [@selected]

jQueryは喜んであなたに価値をもたらします、ただ使用してvalください:

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

実例| ソース

于 2012-05-14T09:49:07.453 に答える
0

あなたのコードは正常に動作しています。これは、変更イベントがコードによって適切に処理されていることを意味します。このリンクを参照してください

$(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呼び出しが機能しているかどうかを確認してください

于 2012-05-14T09:55:51.637 に答える
-1
 <select id="county_id" name="county_id" onchange="ChangeCountry();">

function ChangeCountry()
{
   var _countryId = $('#county_id').val();
}
于 2012-05-14T09:48:46.547 に答える