SugarCRM之在EditViews中调用js

方法一:

(1)  在modules/modulename里面添加相应的modulename.js文件;

(2)       在modules/modulename/metadata/editviewdefs.php中将js文件包含进来,并在相应的字段中加入响应函数。如下所示:

将代码:

'includes'=> array(
array('file'=>'/modules/modulename/modulename.js'),
),

如果需要包含多个js文件,也可以这样写:

'includes' =>  
      array ( 
        0 =>  
        array ( 
          'file' => 'custom/include/javascript/jquery.js', 
        ), 
        1 =>  
        array ( 
          'file' => 'custom/include/javascript/modulename/modulename.js', 
        ), 
      ),  

加到templateMeta对应的键值下;

将代码:

array(
'name' => 'phone_work',
'customCode' => '<input name="phone_work" id="phone_work" size="30" maxlength="25" type="text" value="{$fields.phone_work.value}" onblur="hello()">'
),加到对应字段的位置中。

(3)       在/modules/modulename/modulename.js中加入以下js代码:

function hello (argument) {

       // body...

       alert('hello,my godness!');

}

(4)       然后在Admin>>Repair>>Quick Repair and Rebuild清除js缓存,并重新生成js文件即可。

 

方法一存在不安全因素,如果系统升级等原因,会重新初始化js文件。更安全的方法是放到custom目录下,即方法二。

方法二:

(1)       在custom/include/javascript/modulename中加入modulename.js,如果没有这个目录,可以新建一个。

(2)       将modules/modulename/metadata/editviewdefs.php复制到custom/ modules/modulename/metadata目录下,此时,首先被解析的是custom目录下的view,而不是modules目录下的view,也就是说custom目录下的优先级要比modules目录下的大。

(3)       其他代码添加和清除js缓存都与第一种方法一样。

posted @ 2015-08-01 19:38  懒猫猫IT  阅读(165)  评论(0编辑  收藏  举报