2016-11-06 9 views
0

重力式に単純なjquery関数を統合する方法はありますか?重力計算式jquery

私は3つのフィールドを使用する必要があります。

2つのフィールドと1つの合計フィールドの合計は、数値フィールドに基づいて計算されます。

これはスクリプトですが、私はそれを動作させることができましたが、ajaxは存在せず、合計フィールドは$価格ではなく番号を表示しています。

function calc_price() 
    { 
     var sr = parseInt($("#d_start_rating").val()); 
     if(!sr){ 
      sr = 0; 
      $("#d_start_rating").val(sr); 
     } 
     var er = parseInt($("#d_end_rating").val()); 
     if(!er){ 
      er = 0; 
      $("#d_end_rating").val(er); 
     } 

     if(er > 6000){er = 6000} 
     var points = 0; 

ranges = {"2500":0.09,"3000":0.11,"3500":0.15,"4000":0.21,"4500":0.27,"5000":0.35,"5500":0.45,"6000":0.8}; 
     //var ranges = {2500: 0.08, 3000: 0.11, 3500: 0.14, 4000: 0.20, 4500: 0.24, 5000: 0.30, 5500: 0.35, 6000: 0.6}; 
     for(var key in ranges){ 
      if(sr >= er){break;} 
      if(key > er){ 
       points += (er-sr)*ranges[key]; 
       sr = er; 
       break; 
      } 
      if(sr < key){ 
       points += (key - sr) * ranges[key]; 
       sr = key; 
      } 
     } 
     points = Math.ceil(points); 
     $(".a_points").html(points); 
    } 

    $(document).ready(function() { 
     $('#d_start_rating').change(function() { 
      calc_price(); 
     }); 
     $('#d_end_rating').change(function() { 
      calc_price(); 
     }); 

     calc_price(); 
    }); 

答えて

0

あなたはgform_post_render JSイベントを探しています。ドキュメントの準備完了イベントではなく、カスタムイベントをこのイベントにバインドすることができます。

<script type="text/javascript"> 

$(document).bind('gform_post_render', function(){ 

    $('#d_start_rating').change(function() { 
     calc_price(); 
    }); 

    $('#d_end_rating').change(function() { 
     calc_price(); 
    }); 

    calc_price(); 

}); 

</script> 
+0

応答ありがとうDavid、間違いなくそれを試してください。 – Jim

+0

それはうまくいかない、私は次のページに移動したり、ページを更新するためにいくつかのフィールドを使用しない場合、価格は更新されていません。 – Jim