Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [jQuery]подключение validate.js, для динамически созданной формы 
:(
    Опции темы
Aver78
Дата 19.3.2008, 03:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Суть проблемы такова. существует 3 дива один под другим. Во время первого обращения к сайту создаются все 3 дива, контент в 1 и подключаются все плгины jquery. Потом используя плагин jquery.ajaxContent.js при клике на линке в 1 диве загружается контент 2-ого. С линков 2 дива также грузиться 3. В 3 существует форма к которой нужно подключить jquery.validate.js. Так вот как я ни бьюсь плагин не подключается. То что созданная функция для данной формы работает - 100%, проверял. Похоже проблема именно в том, что динамически созданные элементы jquery не учитываются(по крайней мере как обычно). В общем довольно сумбурно объяснил, но кто сталкивался с такой проблемой - думаю поймет.
PM MAIL   Вверх
ksnk
Дата 19.3.2008, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



Поробуй подключить плагин livequery. Если не поможет - бросай сюда куски кода... 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Aver78
Дата 21.3.2008, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Вроде бы то что надо, но никак не пойму синтаксис. Везде примеры на click, а я никак не пойму аналогию. Попробую разобраться (
PM MAIL   Вверх
Aver78
Дата 21.3.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Скину, заодно, и функцию которую надо запустить, расчитываю на совет.

$(function()                                      {
  var options =            {
    target: '#admin_modul_work'
                           };

  $('#edit_admin').validate                          ({
    submitHandler: function(form) {
      $(form).ajaxSubmit(options);
                                  },
    rules:    {
      email2: {
       required: true,
       minlength: 5,
       maxlength: 12,
       email: true
             }},
    messages: {
      email2: {
        required: 'Укажите свое имя!',
        minlength: 'Не менее 5 символов',
        maxlength: 'Не более 12 символов',
        email: 'Сие должно быть мылом'
              }}

                                                  });
                                                                    });

Это сообщение отредактировал(а) Aver78 - 21.3.2008, 14:41
PM MAIL   Вверх
ksnk
Дата 21.3.2008, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



В этом случае, наверное, проще написать как-то так
Код

function Init_Edit_Admin() {
  var options =  {
    target: '#admin_modul_work'
   };

  $('#edit_admin').validate ({
    submitHandler: function(form) {
 ...
        email: 'Сие должно быть мылом'
    }}
  });
});

$(Init_Edit_Admin); // если на старте формы обязательно нет - убрать

...
// Ajax'ом грузим форму
$('Чего-то-там').load('get_edit_admin.php',Init_Edit_Admin);


Совет с liveQuery был в этом случае, не очень удачным... :-(


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Aver78
Дата 21.3.2008, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Мне кажется можно как то live подключить, ну да ладно, бог с ним пока что.
Переведу вопрос в другую плоскость.
файл 1  -  подключение библиотек и плагинов jquery.
фалй 2 - классы php
файл 3 - непосредственно исполнение методов подлюченных классов.

Если я загоняю эту функция в файл 3, напрямую в php код, то все замечательно, а если подключаю ее из внешенего файла 
echo "<script type='text/javascript' src='script.js'></script>"; то перестают работать ВСЕ методй jquery. 
В чем тут косяк ? Можно конечно и так оставить, но не эстетично и не наглядно.
PM MAIL   Вверх
ksnk
Дата 21.3.2008, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



Цитата(Aver78 @  21.3.2008,  17:51 Найти цитируемый пост)
то все замечательно, а если подключаю ее из внешенего файла 
echo "<script type='text/javascript' src='script.js'></script>"; то перестают работать ВСЕ методй jquery. 

То есть если вместо 
Код

<script type='text/javascript' >
Ta-Самая-Функция ...
</script>

написать 
Код

<script type='text/javascript' src='script.js'></script>

и сбросить ту самую функцию в файл script.js, то все ломается? так не бывает...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Aver78
Дата 23.3.2008, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Я тоже так думал. Но вот есть. При чем не работает не только функция ассоциированная с данной формой, но отваливается функция которая выводит эту форму в определенный див, то есть просто вызывается этот скрип. В общем jquery падает полностью.
Кстати, такая же фигня была если я при обращении ajax  заново производил подключение скриптов.
Привожу пример.

файл 1
echo "<script type=\"text/javascript\" src=\"../include/jquery/jquery.latest.js\"></script>";
echo "<script type=\"text/javascript\" src=\"../include/jquery/jquery.ajaxContent.js\"></script>"; 
<div id=n1>
ссылка вызывающая файл 2, результат работы которого загружается при момощи jquery.ajaxContent.js в див nn2
</div>
<div id=n2>
(сюда будет загружен результат работы файла 2)
</div>

файл 2
echo "<script type=\"text/javascript\" src=\"../include/jquery/jquery.latest.js\"></script>";
echo "<script type=\"text/javascript\" src=\"../include/script.js\"></script>";

echo "Результат";


Так вот, если запускать в таком виде, то файл 2 будет вызван, как будто по обычной ссылке <a href="http://файл2">Файл 2</a>

А если убрать реконект скриптов, то все прекрасно загрузиться в див.

В чем проблема я не догоняю.







 
PM MAIL   Вверх
ksnk
Дата 23.3.2008, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



А зачем jquery подключается второй раз?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Aver78
Дата 23.3.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Ну это так, к примеру. 

файл 2
echo "<script type=\"text/javascript\" src=\"../include/script.js\"></script>";

echo "Результат";


Пусть будет так. Результат один и тот же.
PM MAIL   Вверх
ksnk
Дата 23.3.2008, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



Боюсь, что никак... в подключаемом html не должно быть тегов script. Возможно и есть плагины, которые парсят входящий текст, но мне они неизвестны...
Хм... ерунда, однако...

Это сообщение отредактировал(а) ksnk - 23.3.2008, 17:51


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Aver78
Дата 23.3.2008, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Дело в том, что я подключал таким образом, правда давно уже и не помню возникала ли такая проблема. Но все работало.
PM MAIL   Вверх
ksnk
Дата 23.3.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



Вообще-то да, должно работать... Может ошибки в тексте? FireBug ничего не говорит плохого?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Aver78
Дата 23.3.2008, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Хм, я забыл одну маленькую, но существенную деталь. Данный код не работает только в опере. Firefox  и IE кушают без проблем.
Просто у меня приоритетный браузер опера, вот и забыл указать. Но проблема остается проблемой. Opera 9.26
PM MAIL   Вверх
ksnk
Дата 23.3.2008, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 38
Всего: 386



вот такое работает в Опере
Код

<head>
<title>HellO!</title>
<script type='text/javascript' src='jquery.js'>
</script>
</head>
<body>
<input type='button' onclick="$('#test').load('test5.html')">
<div id='test'>
Just a test
</div>
</body>

test5.html
Код

<script type='text/javascript' src='jquery.validate.js'>
</script>
<script type='text/javascript' >
  $('#edit_admin').validate({
    submitHandler: function(form) {
      $(form).ajaxSubmit(options);
    },
    rules:    {
      email2: {
       required: true,
       minlength: 5,
       maxlength: 12,
       email: true
             }},
    messages: {
      email2: {
        required: 'Укажите свое имя!',
        minlength: 'Не менее 5 символов',
        maxlength: 'Не более 12 символов',
        email: 'Сие должно быть мылом'
    }}

   });
</script>
<form id="edit_admin">
<input type="text" name='email2'>
<input type="submit" value="&raquo;">

</form>



Добавлено через 28 секунд
Opera 9.26


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0563 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.