Конфликты плагинов jQuery - помогите - PullRequest
2 голосов
/ 27 августа 2010

Цель состоит в том, чтобы показать форму, которая обновит div на странице с результатом

  1. загрузить эту [ страницу ]
  2. нажмите на ссылку, чтобыпоказать форму
  3. отправить форму

При отправке результат не отображается в div, если форма была скрыта.

  • после добавления кода, предложенного в ответах ниже, я показываю форму, она отправляется, но данные не отображаются в div. Я даю ajaxForm в качестве цели

    [ Здесь ]та же самая форма, которая показывает результат в div

Спасибо

Ответы [ 6 ]

1 голос
/ 06 сентября 2010

Когда вы отправляете форму, запрос отправляется на сервер, и вы получаете HTTP-ошибку: 405 Method Not Allowed.

Похоже, что это происходит из конфигурации вашего сервера.http://www.checkupdown.com/status/E405.html

Редактировать: поскольку ваш код работает для вашего примера на странице facy.html , я думаю, что он на самом деле не исходит от сервера.Разница между этими двумя примерами заключается в action формы.

  • fancy.html: вы загружаете файл PHP
  • fancy3.html: вы загружаетеHTML-файл

Вы пытались назвать свою спасибо страницу «thanks.php» и соответственно изменить действие вашей формы.Я полагаю, что ваш сервер может не разрешить запрос POST на HTML-странице.

1 голос
/ 03 сентября 2010

Я не уверен, но может быть, вы инициируете форму с неправильным идентификатором?

$('#formDiv').fadeIn('slow').ajaxForm(options)

Когда идентификатор формы равен feditform. И в правильном примере расположен на http://plungjan.name/eetest/facy.html $('#feditform').ajaxForm(options);

0 голосов
/ 03 сентября 2010

Данные появились для меня в ссылке, которую вы разместили.

Если вы считаете, что это связано с конфликтом плагинов, попробуйте jquery.noConflict () http://api.jquery.com/jQuery.noConflict/

Пока не самое элегантное решение. Он легко исправляет любые конфликты с плагинами.

0 голосов
/ 01 сентября 2010

Я не думаю, что ваша проблема связана с jQuery / Javascript.

Как только форма отправлена ​​(я полагаю, через PHP), вам нужно отобразить сообщение, которое будет передано как часть обратного вызова. т.е.

echo '<strong>' . $_POST['message'] . '</strong>';

Хотите опубликовать свой код на стороне сервера?

0 голосов
/ 31 августа 2010

Насколько я вижу, у вас теперь есть:

<div id="formDiv" style="display:none"> some other code here </div>

, но вы все еще звоните $('#feditform').fadeIn('slow').ajaxForm(options);

, насколько я могу видеть и знать оjQuery это никогда не будет отображаться, потому что окружающий div это display:none.Я предлагаю сделать три вещи:

  • Сначала упростите код, используя hide() и show(), что позволит избежать проблем с некоторыми анимациями.Если это работает, вы можете продолжить и представить анимированные версии снова.
  • Просто скройте содержимое функции (document).ready через jQuery, чтобы вы могли положиться на эти функции.У нас был плохой опыт работы со «смешанными» подходами (жестко запрограммированными и с помощью jQuery), особенно в отношении ситуаций с отображением и скрытием.
  • И последнее, но не менее важное: некоторые плагины и среды создают проблемы при использовании $Мы склонны использовать ключевое слово jQuery в таких ситуациях, потому что это всегда будет держать область действия.

Надеюсь, это поможет.

0 голосов
/ 31 августа 2010

В примере, который не работает, если вы связываете ajaxForm при отображении формы, она должна работать нормально.

// you may want to use better/faster selector then 'a' but in this example it 
// will work
$('a').click(function () {
    $('#feditform').fadeIn('slow').ajaxForm(options);
    return false;
});

Добавьте выше вместо jQuery.facybox({ div: '#formDiv' }); return false и все должно работать как положено.

...