Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Скрипт правильно работает только один раз, после начинает выдавать ошибку. (https://javascript.ru/forum/events/30070-skript-pravilno-rabotaet-tolko-odin-raz-posle-nachinaet-vydavat-oshibku.html)

xodock 23.07.2012 12:35

Скрипт правильно работает только один раз, после начинает выдавать ошибку.
 
Здравствуйте.
Есть страница с формой, в которой нужно менять значение текстового поля по нажатию на "плюс" или "минус", после изменения необходимо сабмитить форму ajax'ом.
Вот кусок кода страницы, в $prow->cart_item_id лежит id очередного товара, т.е. на странице id формы или инпута выглядит как qform2 или quantity5, например.
<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"
Не знаю что делать, помогите пожалуйста.

Deff 23.07.2012 12:48

xodock,
Собственно Вы не выложили form1.ajaxSubmit(options1) - поэтому сложно назвать причины

xodock 23.07.2012 13:04

Вложений: 1
И действительно. Во вложении архив с jQuery-плагином в котором эта функция.


Часовой пояс GMT +3, время: 10:44.