2017-07-22 8 views
0

(ddlcountry)の値を選択しても変更イベントが継続的に発生したときにカントリーイベントを変更しようとしています。変更イベントが停止していません

$(document).ready(function() { 
    $('#ddlCountry').on('change', function() { 
     if ($('#ddlCountry option:selected').index() > 0) { 
      getStateDetails(); 
     } 
    }); 
    $('#ddlState').on('change', function() {     
     if ($('#ddlState option:selected').index() > 0) { 
      getCityDetails(); 
     } 
    }); 
}); 

$('#ddlCountry').val(data.CountryID).trigger('change'); 
$('#ddlState').val(data.StateID).trigger('change'); 

どうすればいいですか?

+0

これらの2つの関数のコードを投稿できます: 'getStateDetails'と' getCityDetails' –

+0

また、準備ブロックで.val&.triggerを呼び出すのはなぜですか? –

答えて

1

私はあなたがgetStateDetailsgetCityDetails機能でデータ変数の値を取得されるだろう、とその次の2行は、新しい値を毎回取得していると思う:

$('#ddlCountry').val(data.CountryID).trigger('change'); 
$('#ddlState').val(data.StateID).trigger('change'); 

そして、彼らはその後changeイベントをトリガ。また、これらのドロップダウンから実際に値を選択すると、jqueryの変更イベントがトリガされ、上記の関数が呼び出され、サイクルが繰り返し実行されます。関数内で引数としてその値を渡し

$('#ddlCountry').on('change', function() { 
    if ($('#ddlCountry option:selected').index() > 0) { 
     getStateDetails($(this).val()); 
    } 
}); 
$('#ddlState').on('change', function() {     
    if ($('#ddlState option:selected').index() > 0) { 
     getCityDetails($(this).val()); 
    } 
}); 

:あなたはこのようにコーディングできるドロップダウンの選択されたオプションの値を渡すために

。一般

+0

https://jsfiddle.net/npathak56/bpvaz614/ ここに私のすべての方法 –

+0

それを確認してください。 –

+0

これらの2行を削除すると、定期的なイベントが停止します。 $( '#ddlCountry')。val(data.CountryID).trigger( 'change'); $( '#ddlState').val(data.StateID).trigger( 'change'); –

0

continiously我々はそれを避けるために、次の使用できるイベントトリガーながら:。上

  1. 単一のステートメントでオフ()と上()を使用します(つまり、 .offを()(関数(){} ))。
  2. JavascriptまたはJqueryコードを 他のjsファイルに移動します。

希望します。

関連する問題