EasyUI Forum

General Category => EasyUI for jQuery => Topic started by: karogel on August 09, 2016, 08:41:02 PM



Title: How to avoid onchange method to run during the initial loading of form data?
Post by: karogel on August 09, 2016, 08:41:02 PM
Hi all!

I'm using onchange to my selected textbox to call the automatic computation. The function does well but I dont want to run the function during the initial loading of form data based on adjusted save records.

Is there a way to avoid onchange to function during the initial form load?


Title: Re: How to avoid onchange method to run during the initial loading of form data?
Post by: stworthy on August 10, 2016, 07:14:14 PM
The simple way to solve this issue is to set a flag that indicates if the form data is loaded successfully.
Code:
$('#t1').textbox({
onChange: function(value){
if (flag){
//...
}
}
});


Title: Re: How to avoid onchange method to run during the initial loading of form data?
Post by: karogel on August 11, 2016, 01:00:54 AM
Sorry no luck! I want to use onchange only after loading the initial form data, here's my code:

<form id="fm_application" method="post" novalidate>
   <div>
      Charge 1: <input name="charge1" id="charge1" class="easyui-numberbox"></input></br>
      Charge 2: <input name="charge2" id="charge2" class="easyui-numberbox"></input></br>
      Charge 3: <input name="charge3" id="charge3" class="easyui-numberbox"></input></br>
      Total <input name="totalcharge" id="totalcharge" class="easyui-numberbox" readonly="true"></input></br>
   </div>
</form>

<script>
      function editdata(){
         var row = $('#dg_application').datagrid('getSelected');
         if (row){
            $('#dlg_application').dialog('open').dialog('setTitle','Edit Application');
            var url_loancharge    = 'modules/data/get_saveloancharge.php?appstatuscode=NewApp&loanappid='+row.app_loanappid;
            $('#fm_application').form('load',row);
            $.post(url_loancharge, function(data){
               var data1 = $.parseJSON(data);//parse JSON
               var vtotalcharge =    parseFloat(data1.app_charge1)+
                              parseFloat(data1.app_charge2)+
                              parseFloat(data1.app_charge3);
               $('#fm_application').form('load', $.extend({},data,{
                  charge1:data1.charge1,
                  charge2:data1.charge2,
                  charge3:data1.charge3,
                  totalcharge:vtotalcharge
               }))
            });
         }
      }
      
      $('#charge1').numberbox({
         onChange: function(){
         calc_totalcharge();
        }
      });      
      $('#charge2').numberbox({
         onChange: function(){
         calc_totalcharge();
        }
      });      
      $('#charge3').numberbox({
         onChange: function(){
         calc_totalcharge();
        }
      });      
      function calc_totalcharge(){
            var vcharge1   = parseFloat($('#charge1').numberbox('getValue')) || 0;
            var vcharge2   = parseFloat($('#charge2').numberbox('getValue')) || 0;
            var vcharge3   = parseFloat($('#charge3').numberbox('getValue')) || 0;
            var vtotalcharge = vcharge1 + vcharge2 + vcharge3;
            $('#totalcharge').numberbox('setValue', vtotalcharge);
      }
      






Title: Re: How to avoid onchange method to run during the initial loading of form data?
Post by: stworthy on August 11, 2016, 05:39:50 AM
Please try this code:
Code:
var flag = false;
$(function(){
$('#fm_application').form({
onLoadSuccess:function(){
flag = true;
}
});
});
function calc_totalcharge(){
if (!flag){return;}
//...
}


Title: Re: How to avoid onchange method to run during the initial loading of form data?
Post by: karogel on August 12, 2016, 01:22:03 AM
It's working...problem solved....Thank you very much stworthy