Небольшой вопрос по JS
Нужно с помощью JS добавить форму (несколько форм) так, чтобы её можно было обрабатывать без перезагрузки страницы.
Добавляем вначале в DOM формы с неизвестными товарами и дефолтными значениями полей. Затем обрабатываем. Добавление и обработка ниже.
------------------------------
Код добавления формы:
var new_products = 0;
function addForm(param)
{
var div = document.createElement("div");
var form = document.createElement("form");
var id = document.createElement("input");
var name = document.createElement("input");
var price = document.createElement("input");
var qty = document.createElement("input");
var submit = document.createElement("input");
form.className = 'jcart';
form.method = 'post';
form.action = '';
id.name = 'my_item_id';
id.value = '_' + new_products;
id.type = 'hidden';
name.name = 'my_item_name';
name.value = 'Тестовый товар ' + new_products;
name.type = 'text';
price.name = 'my_item_price';
price.value = 0.00;
price.type = 'hidden';
qty.name = 'my_item_qty';
qty.value = 1;
qty.type = 'hidden';
submit.name = 'my_add_button';
submit.value = 'В корзину';
submit.className = 'button';
submit.type = 'submit';
form.appendChild(id);
form.appendChild(name);
form.appendChild(price);
form.appendChild(qty);
form.appendChild(submit);
div.appendChild(form);
new_products++;
document.getElementById(param).appendChild(div);
return false;
}
------------------------------
Обработка сабмита:
// Add an item to the cart
$('.jcart').submit(function(e)
{
add($(this));
e.preventDefault();
});
------------------------------
Сейчас при сабмите обновляется вся страница. То есть, не срабатывает обработчик и данные передаются обычным POST запросом. Явно какая-то проблема с DOM.
Результат: рабочий скрипт.
100% постоплата сразу же после полученного результата.
Бюджет 5 WMZ. Оплата по Webmoney.