1

$('#countryid').load('/some/url',{country: country_id});以前に選択した国に応じて地域のオプションを自動的にロードする機能を備えたjQueryを使用しています。

そして、ajax を介して html をロードすると、正常に動作します。

しかし、javascript コードをロードする必要があります。それをしようとすると、すべての選択フィールドがページからまったく消えます...

私は何を間違っていますか?

コード:

<script type="text/javascript">
$(document).ready(function() {
    $('#countrydropdown').change(function() {
        var countryvalue = $('#countrydropdown option:selected').val();
        if(countryvalue==0){clearlist();}
        getarea();
    });
});
function getarea(){
    var countryvalue = $('#countrydropdown option:selected').val();
    var area = $('#areadropdown');
    if(countryvalue==0){
        area.attr("disabled",true);
    }else{
        area.attr("disabled",false);
        area.load('/ajax/2/',{country: countryvalue});
    }
}
function clearlist(){
    $('#areadropdown').empty();
}
</script>

<form action="" id="form">
    <select id="countrydropdown">
        <option value="0">Countries</option>
        ...
    </select>
    <select id="areadropdown" disabled="disabled">

    </select>
</form>

ありがとう!!!

4

3 に答える 3

1

コードに基づいて、私の以前の回答に対するあなたのコメントは、あなたが使用していることを示唆しています:

<script type="text/javascript">for(var i in arr) document.write(arr[i]);</script>

ページが読み込まれると、ドキュメントは閉じた状態になります。

cosed状態のドキュメントにはアクセスできないdocument.writeため、document.open自動的に呼び出されます。

これにより、既存のドキュメントが破棄され、新しいドキュメントを作成できるようになります。

DOMを使用してドキュメントを操作し、近づかないでくださいdocument.write

于 2011-11-23T10:50:21.440 に答える
1

eval を使用して JavaScript コードを実行できます

eval(ajax.request);
于 2011-11-23T10:32:41.533 に答える
0

JavaScriptだけをロードする場合は、getScript代わりにload.

HTML と JavaScript の組み合わせをロードする場合はlive、要素自体に直接バインドするのではなく、JavaScript が既に配置されており、イベントが を使用して処理されるように、リファクタリングを真剣に検討します。

于 2011-11-23T10:35:52.600 に答える