2012-02-25 2 views
1

Я пытаюсь создать всплывающее окно в sugarcrm для модуля заметок. Когда пользователь нажимает «Сохранить примечание», я хочу проверить, что поле notes_c не пустое. Если он пуст, мне бы хотелось, чтобы ошибка всплывала и говорила, что заметка пуста. Они могут либо отменить, либо сохранить в любом случае. Ниже приведен код, который я добавил, но не могу получить всплывающее окно для отображения.Javascript для сохранения SugarCRM

Я добавил кнопки для пользовательских/модулей/Notes/метаданных/editviewdefs.php

array (
    'enctype' => 'multipart/form-data', 
    'headerTpl' => 'modules/Notes/tpls/EditViewHeader.tpl', 
    'buttons' => array(
         array('customCode'=>'<input id="samples_transfer_save" type="submit" value="Save Note" name="button" onclick="this.form.action.value=\'Save\'; return (check_save() && check_form(\'EditView\'));" class="button" accesskey="S" title="Save [Alt+S]"/>&nbsp;'), 
         'CANCEL', 
     ), 
), 
    'includes'=> array('file'=>'custom/modules/Notes/checksave.js'), 

Кнопки действительно показывает вверх и форма действительно сохранить это просто не отображает сообщение об ошибке, если это поле будет пустым.

Вот файл JS называется checksave.js

function check_save() { 
       if(document.getElementById('notes_c').value == '') { 
         document.getElementById('warning').innerHTML = 'Warning: No Public Notes Entered'; 
         $j("#warning").fadeIn("slow"); 
         setTimeout('$j("#warning").fadeOut("slow");',20000); 
         return false; 
       }else { 
         return true; 
       } 
     } 

ответ

3

Лучший способ сделать это пойти в Studio, редактировать notes_c поле, и установите флажок «обязательное поле» флажок. Это позаботится о вас для подтверждения.

Если вы настаиваете на добавлении собственных js для проверки, вы можете сохранить кнопки по умолчанию, но в вашем js-файле переопределить функцию onsubmit.

document.EditView.onsubmit = check_save; 
1

Для добавления пользовательских сценариев в SugarCRM я делаю это:

в logic_hook.php

<?php 

$hook_version = 1; 
$hook_array = Array(); 

$hook_array['after_ui_frame'] = Array(); 
$hook_array['after_ui_frame'][] = Array(1, 'JQuery', 'custom/modules/Accounts/custom_code/customscripts.php','JQuery', 'JQuery'); 

?> 

после этого в файле класса Jquery

<?php 

class JQuery{ 

    function JQuery($event, $arguments){ 
     echo '<script type="text/javascript" src="custom/modules/Accounts/custom_code/jmask.js"></script>'; 
     echo '<script type="text/javascript" src="custom/modules/Accounts/custom_code/scripts.js"></script>';   
    } 

} 
?> 

и создать обычный файл JS под названием скриптов и импорта jmask.

Смежные вопросы