0

私はcodeigniterを使用しており、ドロップダウンフォームを選択するとonchangeが機能し、2番目のフィールドがok(Country-> City)になります。エラーのあるフォームを送信すると、エラーが表示された状態でページがリロードされますが、onchangeが機能しなくなります。何が起こっているのかについてのアイデアはありますか?うーん、これが私がやっていることです。ユーザーはホームページにアクセスしてフォームに入力すると、onchangeが機能します。次に、ユーザーはエラーのあるフォームを送信し、検証を確認して、同じonchange関数を使用して新しいページ(登録)をロードします。関数名(getLocal)を別の名前に変更しようとしましたが、結果は同じです。live。( "change"、getLocal)を使用しようとしましたが、結果は同じで、登録ページで起動しません。

 
function getLocal(){
    $("#city").load("home/ajaxlocal", {country: $(this).val()} );
   //alert($(this).val());

    return false;
}

..............

$js = 'id="country"';
    
    $(document).ready(function() {
    $("#country select").bind("change", getLocal);
        });
    
td echo form_label('Country :', $country); 
td id="country">echo form_dropdown('country', $country,$ct,$js);
4

1 に答える 1

1

ページをリロードしないが、AJAXを使用して要素をリロードする場合、ready()関数で要素を指定すると、jqueryはそれらの新しい要素にバインドしません。

$(document).ready(function() {
    $("#country select").bind("change", getLocal);
});

これはこのonloadをロードしています-.live()を使用してみてください

http://api.jquery.com/live/

このメソッドは、イベントハンドラーを要素にアタッチするための基本的な.bind()メソッドのバリエーションです。.bind()が呼び出されると、jQueryオブジェクトが参照する要素がハンドラーをアタッチします。後で導入される要素はそうではないため、別の.bind()呼び出しが必要になります。

于 2010-07-06T04:50:46.883 に答える