jquery.form

Обсуждаются вопросы использования плагинов для jQuery, созданных сторонними разработчиками.

Модераторы: TRAHOMOTO, tuareg

jquery.form

Сообщение ambal » 13 авг 2012, 08:13

сделал по первому простейшему примеру отсюда http://jquery.malsup.com/form/#getting-started , но форма всё-равно отправляется и грузится страница, которая в action указана... Помогите, плз

функция:

Код: выделить все
$(document).ready(function(){
           $("#updFrm").ajaxForm(function() {
               viewCart();
               });
           });


ну а форма у меня генерируется в другой функции:

Код: выделить все
function viewCart(){
           $.getJSON('viewCart', function(cartItems){
               if(cartItems){
               document.getElementById("viewBook").innerHTML = '<form action="updateCart" method="post" id="updFrm"><table id="cartInfo"><thead><tr><th>product</th><th>quantity</th><th>'+
               'price</th><th>total</th></tr></thead>';
               var total = 0;
                   var quantitys = new Array();
               $.each(cartItems, function(cartItem){
                   quantitys[cartItem] = cartItems[cartItem].quantity;
                   var subtotal = cartItems[cartItem].quantity * cartItems[cartItem].book.price;
                   $("#cartInfo").append('<tr><td>'+ cartItems[cartItem].book.title +
                                       '</td><td><input type="text" name="quantity" value="'+ cartItems[cartItem].quantity +
                                       '"></td><td class="right">'+ cartItems[cartItem].book.stringPrice +'</td>'+
                                       '<td class="bold right">$'+ subtotal.toFixed(2) + '</td></tr>');
                   total += subtotal;
               });
               $("#cartInfo").append('<tr id="forBtn">');
               $("#forBtn").append('<td><input type="submit" value="updateCart" id="updBtn"></form></td>');
               $("#forBtn").append('<td colspan="4" class="bold right">total: $' + total.toFixed(2) + '</td></tr></table>');
               $("#viewBook").append('<form action="../../order.jsp" method="get"><p><input type="submit" value="check out"></p>');
               } else{
                   $("#viewBook").html('<p>shoping cart is currently empty</p>');
               }
           });
           return false;
       }


Не смотрите, что форма генерируется в функции, которая вызывается после отправки формы, она у меня генерируется ещё раньше, т.е. форма на странице есть и с ней всё в порядке в момент отправки.

a, всё, понял, добавил скрипт, добавляющий ajaxForm к форме в метод, где генерится форма.
ambal
 
Сообщений: 2
Зарегистрирован: 10 авг 2012, 16:22

Re: jquery.form

Сообщение ambal » 13 авг 2012, 15:20

другой вопрос, в функции генерируется форма, после на неё вешаю обработчик ajaxForm, запрос к сервлету идёт, всё норм отрабатывается, получен ответ 200 OK, но параметр success не отрабатывается, т.е. функция, указанная в нём не запускается...

функция, генерирующая форму с обработчиком:

Код: выделить все
function viewOrderFrm(str){
        alert(str);
        $("#viewBook").html('<form action="order" method="post" id="orderFrm"><p style="font-weight:bold">'+
                            'All fields are required. plz input the following info.</p><table><tr>'+
                            '<td><input type="text" placeholder="name" name="firstName" size="25" required autofocus>'+
                            '</td></tr><tr><td>'+
                            '<input type="text" placeholder="last name" name="lastName" size="25" required></td></tr><tr><td><input type="text" placeholder="street" name="street" size="25" required></td></tr><tr>'+
                            '<td><input type="text" placeholder="city" name="city" size="25" required></td></tr><tr>'+
                            '<td><input type="text" placeholder="state" name="state" size="2" required></td></tr>'+
                            '<tr><td><input type="text" placeholder="zipcode" name="zipcode" size="10" required>'+
                            '</td></tr><tr><td>('+
                            '<input type="tel" placeholder="phone #:" name="phone" size="3" required>)<input type="tel" placeholder="phone" name="phone2" size="3" required>'+
                            '</td></tr><tr><td><input type="month" placeholder="expiration(mm/" name="expires" size="11" required>'+
                            '<input type="month" name="expires2" placeholder="yy)" size="2" required></td></tr>'+
                            '<tr><td><input type="submit" value="submit"></td></tr></table>'+
                            '</form>');
        $(document).ready(function(){
            $('#orderFrm').ajaxForm({
            dataType: 'application/json',
            success: function(str){
                alert('success');
                viewOrderFrm(str);
            }
        });
        });
        return false;
    }



doPost метод servlet'a:

Код: выделить все
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Calendar calendar = Calendar.getInstance();
        Calendar calendarNow = Calendar.getInstance();
        calendarNow.setTime(new Date());
        calendar.set(Integer.parseInt(request.getParameter("expires2")), Integer.parseInt(request.getParameter("expires")), 1);
        if (!calendarNow.after(calendar)) {
            response.setContentType("application/json");
            response.setCharacterEncoding("UTF-8");
            response.getWriter().write("success");
        } else {
            response.setContentType("application/json");
            response.setCharacterEncoding("UTF-8");
            response.getWriter().write("dateFail");
        }
    }


мда, кавычки в ответе решают :x , вопрос снят
ambal
 
Сообщений: 2
Зарегистрирован: 10 авг 2012, 16:22


Вернуться в Плагины jQuery

Кто сейчас на форуме

Сейчас этот форум просматривают: Yandex и гости: 7