2013-08-06 22 views
0

我想引發一些JavaScript當涉及字段填充SugarCRM的 - 當涉及領域觸發JavaScript函數填充

我希望能找到的jQuery監測隱藏字段CONTACT_ID的方式,當它的變化調用JavaScript函數,但我不知道這是可能的

此刻我改變editviewdefs使事件觸發的onblur

Code: 

array (
      'name' => 'contact_name', 
      'label' => 'LBL_CONTACT_NAME', 
      'customLabel' => '{$MOD.LBL_CONTACT_NAME}: <span class="required">*</span>', 
      'displayParams' => 
      array (
       'initial_filter' => '&account_name_advanced={$fields.account_name.value}&status_advanced=Live', 
       'field' => 
       array (
       'onchange' => 'getOpenCases()', 
      ), 
       'javascript' => 
       array (
       'btn' => ' onblur="getOpenCases()" ', 
       'btn_clear' => ' onblur="getOpenCases()" ', 
      ), 
      ), 
      'tabindex' => '11', 
     ), 

但這意味着用戶面前的事件是從外地來點擊即可觸發

我希望它儘快CONTACT_ID填充

發生這可能嗎?如果是這樣,我該如何實現它?

回答

1

我有一個相當複雜的方法來檢查隱藏輸入的變化。

當某人點擊按鈕或開始輸入文本字段時,我會觸發setInterval函數。然後,我使用jQuery數據()來檢查隱藏輸入中的任何更改。當我更改注意到我運行我的自定義js,然後我清除間隔。

所有代碼都在外部js文件中。

// watch for a change in account ID 
$('#btn_account_name').click(function(){ 
    checkAccountIdChange(); 
}); 
$('#account_name').blur(function(){ 
    checkAccountIdChange(); 
}); 

function checkAccountIdChange() { 
    var theInterval = setInterval(function(){ 
     var oldId = $('#account_id').data('oldId'); 
     var newId = $('#account_id').val(); 
     if (oldId != newId && newId != '') { 
      getAccountData(newId, theInterval); 
      $('#account_id').data('oldId', newId); 
     } 

    }, 500); 
} 

function getAccountData(id, theInterval) { 

    // do your custom js 
    clearInterval(theInterval); 

} 

這不是特別乾淨或迷人,但工作。我很想看看別人如何解決這個問題。