Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2012, 15:43   #1
Xodock
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 2
По умолчанию Скрипт правильно работает только один раз, после начинает выдавать ошибку

Здравствуйте.
Есть страница с формой, в которой нужно менять значение текстового поля по нажатию на "плюс" или "минус", после изменения необходимо сабмитить форму ajax'ом.
Вот кусок кода страницы, в $prow->cart_item_id лежит id очередного товара, т.е. на странице id формы или инпута выглядит как qform2 или quantity5, например.
PHP код:
<form method="post" id="<?php echo $prow->cart_item_id?>" name="qform<?php echo $prow->cart_item_id?>" action="index2.php?option=com_virtuemart&view=cart1" class="inline">
<input id="quantity<?php echo $prow->cart_item_id?>" type="text" title="<?php echo  JText::_('COM_VIRTUEMART_CART_UPDATE'?>" class="inputbox" size="3" maxlength="4" name="quantity" value="<?php echo $prow->quantity ?>" />
<span class="minus1" style="cursor:pointer;" onclick="javascript:minus('quantity<?php echo $prow->cart_item_id?>','qform<?php echo $prow->cart_item_id?>');">-</span>
<span class="plus1" style="cursor:pointer;" onclick="javascript:plus('quantity<?php echo $prow->cart_item_id?>','qform<?php echo $prow->cart_item_id?>');">+</span>
</form>
А вот js
Код:
		if (typeof(plus) !== "function") {
		function plus(q1,f1){
		var qua1=document.getElementById(q1);
		var form1=jQuery('#'+f1);
		qua1.value++;
		var options1 = {
		target: '#body'
		};
		form1.ajaxSubmit(options1);
		return false;
		}
		}
		if (typeof(minus) !== "function") {
		function minus(q2,f2){
		var qua2=document.getElementById(q2);
		var form2=jQuery('#'+f2);
		if (qua2.value!==1){
		qua2.value--;
		var options2 = {
		target: '#body'
		};
		form2.ajaxSubmit(options2);
		}
		return false;
		}}
Итак, суть проблемы: всё это работает корректно один раз, потом при нажатии на плюсы/минусы происходит изменение значения поля, но не выполняется formX.ajaxSubmit(optionsX); при этом в опере вижу ошибку, например, "Unhandled Error: 'form1.ajaxSubmit' is not a function"
Не знаю что делать, помогите пожалуйста.
Во вложении архив с jQuery-плагином в котором функция ajaxSubmit.
Вложения
Тип файла: zip jquery.form.js.zip (10.2 Кб, 9 просмотров)
Xodock вне форума Ответить с цитированием
Старый 23.07.2012, 17:05   #2
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

А если убрать
Код:
if (typeof(plus) !== "function")
и
Код:
if (typeof(minus) !== "function")
rlib вне форума Ответить с цитированием
Старый 23.07.2012, 17:35   #3
Xodock
Новичок
Джуниор
 
Регистрация: 28.09.2010
Сообщений: 2
По умолчанию

Это была моя попытка избежать конфликта при подгрузке странички аджаксом. Но это скорее от отчаяния. Эти условия хоть есть, хоть нету, одинаково плохо работает.
Xodock вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как запустить форму только один раз artemavd Общие вопросы Delphi 9 28.11.2010 16:43
Скрипт выполняется только один раз MAKSA JavaScript, Ajax 6 12.02.2010 13:48
Как выполнить действие только один раз? dolphin705 Общие вопросы Delphi 5 25.08.2009 09:33
timer срабатывает только один раз! KWN, lnc Общие вопросы Delphi 1 05.03.2009 12:58
Как высчитывать ячейку только один раз? Человек Microsoft Office Excel 2 20.12.2006 20:57