0

2つのドロップダウンメニュー(select1とselect2)と1つの入力テキスト(レート)があります。select1で値を選択すると、select2で値が変わります。select2で値を選択すると、その値が入力テキストに表示されます。ここで、select1トリガーによってselect2が変更されたときに、入力テキストを変更して変更する必要があります。しかし、それはうまくいきません。私は変更、ぼかしを試みました...しかしそれは役に立ちませんでした。

何か案が?

$('#select1').change( function() { 
    $.post("includes/functions.php", {select1: ""+$(this).val()+""},
      function(data){
        var objet = JSON.parse(data);       
        ...
        $("#select2").val(objet.select2value); //That works!
      }
}

その後:

$('#select2').bind('keyup blur change focus click', function(){
  $.post("includes/functions.php", {
    rate: ""+$(this).val()+"" }, function(data){
       var objet = JSON.parse(data);
       /* That works when I change select2 directly in the drop-down;
          not when select2 changed by changing select1 */
       document.form.rate.value = objet.rate;  
  });
});
4

1 に答える 1

1

2番目のハンドラーの外部でロジックをリファクタリングし、両方のイベントで呼び出すのはどうですか。

$('#select1').change( function() { 
    $.post("includes/functions.php", {select1: ""+$(this).val()+""},
      function(data){
        var objet = JSON.parse(data);       
        ...
        $("#select2").val(objet.select2value);
        updateRate();
      }
}

$('#select2').change( function(){
  updateRate();
});

function updateRate() {
    $.post("includes/functions.php", {
        rate: ""+ $('#select2').val() +"" }, function(data){
           var objet = JSON.parse(data);
           document.form.rate.value = objet.rate;  
      });
}
于 2012-06-20T17:45:31.770 に答える