Форум русской поддержки Joomla!® CMS
10.12.2016, 20:35:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как правильно подключить jquery к Joomla 2.5?

 (Прочитано 9343 раз)
0 Пользователей и 1 Гость смотрят эту тему.
digitalheart
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 39


« : 16.12.2013, 00:30:52 »

<php?
defined( '_JEXEC' ) or die( 'Restricted access' );

$doc = &JFactory::getDocument();

$doc->addScript(JURI::root(). 'media/jquery/jquery-1.10.2.min.js');
$doc->addScript(JURI::root(). 'media/jquery/jquery-validate.min.js');
$doc->addScriptDeclaration('jQuery.noConflict();');

JHtml::_('behavior.keepalive');
JHtml::_('behavior.tooltip');
JHtml::_('behavior.calendar');
//JHtml::_('behavior.formvalidation');

JHTML::stylesheet('media/com_jea/css/jea.css');

$this->form->setFieldAttribute('description', 'buttons', 'false');

$user = JFactory::getUser();
$uri =JFactory::getURI();

?>

<script type="text/javascript">
jQuery(document).ready(function()
{
    jQuery("#adminForm").submit(function()
        {
                   alert("Form submit!");
                       });
                       });
</script>

Проверочный скрипт не срабатывает при отправке формы. Подскажите, пожалуйста, где туплю.
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #1 : 16.12.2013, 00:37:12 »

Ну есть множество плагинов. Например вот.
Записан
OmniWizard
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 51



« Ответ #2 : 16.12.2013, 10:33:32 »

Странные дела, может просто попробовать дописать к родному скрипту validate.js
просто добавить свое название инпута, да регулярное выражение?
this.setHandler("password",function(a){regex=/^\S[\S ]{2,98}\S$/;return regex.test(a)});
а то получается, что отключить придется весь js.
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Online Online

Пол: Мужской
Сообщений: 2247


« Ответ #3 : 16.12.2013, 13:32:05 »

Проверочный скрипт не срабатывает при отправке формы. Подскажите, пожалуйста, где туплю.
Сначала отмените дефолтное действие при сабмите формы, потом с ней работайте.
Код
<script type="text/javascript">
jQuery(document).ready(function() {
   jQuery("#adminForm").submit(function(event) {
       event.preventDefault();
       alert("Form submit!");
  });
});
</script>
Записан
digitalheart
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 39


« Ответ #4 : 16.12.2013, 22:49:57 »

Сначала отмените дефолтное действие при сабмите формы, потом с ней работайте.
Код
<script type="text/javascript">
jQuery(document).ready(function() {
   jQuery("#adminForm").submit(function(event) {
       event.preventDefault();
       alert("Form submit!");
  });
});
</script>
Сделал, не хочет работать.

jQuery(document).ready(function(){
    jQuery('body').append('<br/>Этот текст добавлен с помощью jQuery');
});

текст появился.

не могу понять почему предыдущий пример не работает.
Записан
fsv
Практически профи
*******

Репутация: +330/-2
Online Online

Пол: Мужской
Сообщений: 2247


« Ответ #5 : 17.12.2013, 00:42:39 »

ссылка?
Записан
SmokerMan
Профи
********

Репутация: +694/-25
Offline Offline

Пол: Мужской
Сообщений: 5225



« Ответ #6 : 17.12.2013, 02:23:32 »

скорее всего потому что субмит прописан выше, т.е. стандартный с использованием му.
и он естественно не дает дальше действий
Записан
digitalheart
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 39


« Ответ #7 : 17.12.2013, 13:21:03 »

скорее всего потому что субмит прописан выше, т.е. стандартный с использованием му.
и он естественно не дает дальше действий

Извините, я новичок. Можете разжевать, что это значит?
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #8 : 17.12.2013, 13:39:21 »

Извините, я новичок. Можете разжевать, что это значит?
F12 и в консоли смотри красным - ошибки (Firefox, Chrome)
без ошибок и доступа к сайту только с использованием телепатических способностей  Smiley
Записан
OmniWizard
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 51



« Ответ #9 : 17.12.2013, 15:07:20 »

Это может быть от того что ты посылаешь  форму не <input type="submit", а <button> вот мой пример проверки формы под button самописный, ахахахахах!


jQuery(document).ready(function(){
   
   
       
        var name = jQuery('#form_faq_block_tip_name');// Назначаем div с нашим ответом о вводе
        name.hide();//скрываем элемент
       
   
    function searching( search_text,reg){ // Создаем функцию поиска search_text - вводимое значение в input, reg - переменная для выборки if
       
        var result;
            if (reg == 'name'){
            var re = /[a-zа-яA-ZA-Я]{3,15}$/;         
            result = search_text.search(re);
        }
        else if(reg == 'mail'){
            var re = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
            result = search_text.search(re);
        }
        else if(reg == 'text'){
            var re = /^(.|\n){20,2000}$/;
            result = search_text.search(re);
           
        }
        return result;
    }
   
    var form_name = jQuery('#form_faq_block_name_input input');
    form_name.blur(function(){ // Назначаем событие на выход из фокуса имени
            if (searching(form_name.val(),'name')!=0){
                name.html('<span style="color:red;">Введите правильно Имя:<br />'+'включающее только буквы<br /> и больше 2 симолов</span>');
                }
                else{
                    name.html('');
           
                   
                   
                }
          name.fadeIn(500);
         
       
    });
 
    var form_city = jQuery('#form_faq_block_city_input input');
    form_city.blur(function(){ // Назначаем событие на выход из фокуса город
            if (searching(form_city.val(),'name')!=0){
                name.html('<span style="color:red;">Введите правильно Город:<br />'+'включающее только буквы<br /> и больше 2 симолов</span>');   
             
                }
                else{
                    name.html('');
             ;
                   
                }
           
        name.fadeIn(500);
    });
   
    var form_mail = jQuery('#form_faq_block_mail_input input');
    form_mail.blur(function(){ // Назначаем событие на выход из фокуса почта   
            if (searching(form_mail.val(),'mail')!=0){
                name.html('<span style="color:red;">Введите правильно свой e-mail:</span>');
               
                }
                else{
                    name.html('');

                   
                   
                }                   
        name.fadeIn(500);
    });
   
     var form_text = jQuery('#form_faq_block_text_input textarea');
            form_text.blur(function(){ // Назначаем событие на выход из фокуса текста   
                if (searching(form_text.val(),'text')!=0){
                    name.html('<span style="color:red;">Напишите свой вопрос:</span>');
                   
                    }
                    else{
                        name.html('');
     
                       
                       
                    }
                         
            name.fadeIn(500);
        });
     var button = jQuery('#form_faq_block_button_input button');
     button.click(function(event){   
        if (searching(form_name.val(),'name')==0 && searching(form_city.val(),'name')==0 && searching(form_mail.val(),'mail')==0 && searching(form_text.val(),'text') ==0){
        alert('Ушло');
        }else{   
            name.html('<span style="color:red;">Вы не заполнили форму:</span>');
            event.preventDefault();
            }
       
     });   
 
 });// конец jQ


Вот HTML для понятности
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Проба</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script src="js/jquery-1.10.2.min.js" type="application/javascript"></script>
<script src="js/myscript.js" type="application/javascript"></script>
</head>
<body>

<div id="form_faq">
<form id="form_faq_form"action="123123" enctype="multipart/form-data">
    <div id="form_faq_block">
        <div id="form_faq_block_title">
        Имя:
        </div>
        <div id="form_faq_block_name_input">
        <input name="" type="text" placeholder="  Введите Имя"/>
        </div>
        <div id="form_faq_block_tip">
            <div id="form_faq_block_tip_name">
            </div>
        </div>
    </div>
    <div id="form_faq_block">
        <div id="form_faq_block_title">
        Город:
        </div>
        <div id="form_faq_block_city_input">
        <input name="" type="text" placeholder="  Введите Город"/>
        </div>
        <div id="form_faq_block_tip">
        </div>
    </div>
    <div id="form_faq_block">
        <div id="form_faq_block_title">
        Почта:
        </div>
        <div id="form_faq_block_mail_input">
        <input name="" type="text" placeholder="  Введите свой e-mail"/>
        </div>
        <div id="form_faq_block_tip">
        </div>
    </div>
    <div id="form_faq_block_big">
        <div id="form_faq_block_title">
     Вопрос</div>
        <div id="form_faq_block_text_input">
        <textarea placeholder=" Задайте свой вопрос"></textarea>
        </div>
             <div id="form_faq_block_text_tip">
   </div>
    </div>
    <div id="form_faq_block">
        <div id="form_faq_block_button_tip">
        </div>
        <div id="form_faq_block_button_input">
        <button type="submit">Отправить</button>
        </div>
    </div>
</form>
</div>
</form>
</body>
</html>


Пример рабочий!

так я его подключил к Joomla

$document = JFactory::getDocument();
$document->addScript('templates/auto-16/js/jquery-1.8.3.min.js');
$document->addScript('templates/auto-16/js/form_faq.js');
« Последнее редактирование: 17.12.2013, 15:18:40 от OmniWizard » Записан
Jekssone
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #10 : 05.06.2015, 12:29:13 »

Доброго всем дня!

Начал знакомится с JQuery и возник вопрос. Влияет ли порядок загрузки на выполнение скрипта?
Для эксперимента, прописал в модуле меню (файл default.php) Joomla 2.5 вызов скрипта, который положил в папку assets (папку в соответствующем XML прописал).
Код:
$document = &JFactory::getDocument();
$document->addScriptDeclaration('jQuery.noConflict();');
$document->addScript(JUri::root(true).'/modules/mod_menu/assets/js/jqtestscript.js');

далее, ниже по тексту, в том же файле прописал
Код:
<script type="text/javascript">
jQuery(document).ready(function($) {
jQuery("ul.menu<?php echo $class_sfx;?>").myRenderMenu({
…//
});
});
</script>
Для проверки задал в самом скрипте (jqtestscript.js) изменение фона тэга ul
Код:
(function ($) {
$.fn.myRenderMenu = function() {
this.css({ "background-color" : "green" });
return this;
};
}( jQuery ));

Но(!) Ничего не работает. При этом, если прописываю подобное действие напрямую внутри
Код:
<script>…</script>
— всё ОК.
Проверил вывод — получается, что в head сначала прописывается мой скрипт, а уже потом — сам JQuery…

Код:
<html>
<head>
<script src="/joomla/modules/mod_menu/assets/js/jqtestscript.js" type="text/javascript"></script>

<script src="/joomla/templates/mytemplate/js/jquery-2.1.4.min.js"></script>

</head>

В index.php шаблона вывод JQuery прописан сразу после конструкции
Код:
<jdoc:include type="head" />
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet