И снова здрасти . Код (PHP): JToolBarHelper::save(); вот этим мы создаем кнопочку сохранить в админке и по нажатию кнопочки происходит сохранение введенной информации. внимание вопрос .... можно ли каким-то образом обрабатывать события этой кнопки? тобишь меня интресует такая механика : реакция на событие onClick, после чего вызывается функция яваскрипта (там производится проверка корректности ввода) и если есть ошибки то не производится переход, а остаемся на странице и корректируем данные.
Код (html): <td id="toolbar-save" class="button"> <a class="toolbar" onclick="javascript: submitbutton('saveFeed')" href="#"> <span title="Сохранить" class="icon-32-save"></span> Сохранить </a> </td> можно например так перехватить в jQuery Код (CODE): $("#toolbar-save").click(function(){ alert("Save me :D"); }); или в Mootools: Код (CODE): $("#toolbar-save").addEvent("click", function(){ alert("Save me :D"); });
А почему бы не посмотреть как это реализовано в самой джумле? Ничего там перехватывать не надо. В любом месте можно попробовать что-нибудь удалить ничего не выбрав.
Там написано более, чем понятно. Вот например administrator\components\com_categories\admin.categories.html.php (253-282): Код (PHP): <script language="javascript" type="text/javascript"> function submitbutton(pressbutton, section) { var form = document.adminForm; if (pressbutton == 'cancel') { submitform( pressbutton ); return; } if ( pressbutton == 'menulink' ) { if ( form.menuselect.value == "" ) { alert( "<?php echo JText::_( 'Please select a Menu', true ); ?>" ); return; } else if ( form.link_type.value == "" ) { alert( "<?php echo JText::_( 'Please select a menu type', true ); ?>" ); return; } else if ( form.link_name.value == "" ) { alert( "<?php echo JText::_( 'Please enter a Name for this menu item', true ); ?>" ); return; } } if ( form.title.value == "" ) { alert("<?php echo JText::_( 'Category must have a title', true ); ?>"); } else { <?php echo $editor->save( 'description' ) ; ?> submitform(pressbutton); } } </script> Когда недостаточно слов,... читай код : )
Пути решения выбирает каждый сам. Но, очень будет хорошо, если ты будешь знать язык, на котором программируешь и особенности frameworkа и использовать уже готовые решения и функции. Велосипед, сделанный своими руками, понятнее любого другого. И потом, выше высказанный подход содержит изъяны. Обработка: Код (CODE): javascript: submitbutton('saveFeed') никуда не девается, а, даже, будет выполняться раньше добавленного события.
полностью соласен с sectus, предложенное мною решение это всего лишь обход конструкций фреймворка, потомучто, как я писал выше, мне было просто лень ковырять код )))