Serialize从输入名称的每个字符生成变量

时间:2013-12-11 13:01:22

标签: jquery

以下是http://jsfiddle.net/39puK/表单 console.log显示以下数据,得到.serialize():

product_id=1&quantity=12&price_base=1&markup_k=1&markup_a=0&price=1&sales=true&priority=1&offered=shipped&date=&distributor_id=22&create_delivery=false&delivery_date=&delivery_quantity=

但Firebug告诉我http://savepic.net/4035933.htm

product_id=3&quantity=1&price_base=1&markup_k=1&markup_a=0&price=1&sales=true&priority=1&offered=shipped&date=&distributor_id=22&create_delivery=false&delivery_date=&delivery_quantity=&0=p&1=r&2=o&3=d&4=u&5=c&6=t&7=_&8=i&9=d&10=%3D&11=3&12=%26&13=q&14=u&15=a&16=n&17=t&18=i&19=t&20=y&21=%3D&22=1&23=%26&24=p&25=r&26=i&27=c&28=e&29=_&30=b&31=a&32=s&33=e&34=%3D&35=1&36=%26&37=m&38=a&39=r&40=k&41=u&42=p&43=_&44=k&45=%3D&46=1&47=%26&48=m&49=a&50=r&51=k&52=u&53=p&54=_&55=a&56=%3D&57=0&58=%26&59=p&60=r&61=i&62=c&63=e&64=%3D&65=1&66=%26&67=s&68=a&69=l&70=e&71=s&72=%3D&73=t&74=r&75=u&76=e&77=%26&78=p&79=r&80=i&81=o&82=r&83=i&84=t&85=y&86=%3D&87=1&88=%26&89=o&90=f&91=f&92=e&93=r&94=e&95=d&96=%3D&97=s&98=h&99=i&100=p&101=p&102=e&103=d&104=%26&105=d&106=a&107=t&108=e&109=%3D&110=%26&111=d&112=i&113=s&114=t&115=r&116=i&117=b&118=u&119=t&120=o&121=r&122=_&123=i&124=d&125=%3D&126=2&127=2&128=%26&129=c&130=r&131=e&132=a&133=t&134=e&135=_&136=d&137=e&138=l&139=i&140=v&141=e&142=r&143=y&144=%3D&145=f&146=a&147=l&148=s&149=e&150=%26&151=d&152=e&153=l&154=i&155=v&156=e&157=r&158=y&159=_&160=d&161=a&162=t&163=e&164=%3D&165=%26&166=d&167=e&168=l&169=i&170=v&171=e&172=r&173=y&174=_&175=q&176=u&177=a&178=n&179=t&180=i&181=t&182=y&183=%3D

可以注意到输入名称(如product_id)变成了这样的

p&1=r&2=o&3=d&4=u&5=c&6=t&7=_&8=i&9=d&10=

并进入product_id=3

为什么呢?如何解决这个问题?

以下完整代码:

    $('#main_wrap').on('click', '.show_offer_info_modal_window', function() {
    var product_id = $(this).attr('data-product-id');
    $.ajax({
        url : "manage/get_offer_info.php",
        type : "GET",
        //dataType: "json",
        data : {
        product_id : product_id
        }, // конец data
    success : function(data, textStatus) {
        $('#modal_window').html(data);
        $('#modal_window').append(close_link);

        // Валидация формы добавления предложения
        $('#add_offer_form').validate({ 
        submitHandler: function(form) {

        console.log(jQuery('#add_offer_form').serialize());
        $(form).ajaxSubmit({
                            url : "manage/add_offer.php",
                            type : "POST",
                            dataType: "json",
                            data : jQuery('#add_offer_form').serialize(), // конец data
                        success : function(data, textStatus) {
                            if ( data.result == 'success' )
                            {
                                // И отобразить сообщение о результате
                                $( "#dialog" ).html('Предложение успешно добавлено');
                                $( "#dialog" ).dialog({
                                    dialogClass: 'fixed-dialog',
                                    draggable: false,
                                    resizable: false,
                                    height: "auto",
                                    width: "350",
                                    modal: true,
                                    position : { my: "center", at : "center", of : "body" },
                                    buttons: {
                                            Ok : function() {
                                            $( this ).dialog( "close" );
                                        }
                                    }
                                });
                                $('.close-reveal-modal').click();
                                $('[data-product-id='+product_id+']').click();
                                //$('.back_link [data-id=add_offer]').click(); // перелистывание назад, к первой странице в случае успешного добавления предложения
                                //$('#offers_container').after('<tr>');
                            }
                            else
                            {
                                // И отобразить сообщение о результате
                                $( "#dialog" ).html('Произошла ошибка. Попробуйте обновить страницу');
                                $( "#dialog" ).dialog({
                                    dialogClass: 'fixed-dialog',
                                    draggable: false,
                                    resizable: false,
                                    height: "auto",
                                    width: "350",
                                    modal: true,
                                    position : { my: "center", at : "center", of : "body" },
                                    buttons: {
                                            Ok : function() {
                                            $( this ).dialog( "close" );
                                        }
                                    }
                                });
                            }
                        }, // конец success
                        error : function(xhr,errmsg,err) {
                            $('#modal_window').html('Произошла ошибка. Попробуйте обновить страницу.'+close_link);
                        } // конец error
                    });
        },
        rules:{ 

                price_base:{
                    required: true,
                    minlength: 1,
                    maxlength: 8,
                    number: true,
                },

                quantity:{
                    required: true,
                    digits: true,
                    maxlength: 6,
                },

                sales:{
                    required: true,
                },

                distributor_id:{
                    required: true,
                },

                delivery_date: 
                {
                    required:  {
                        depends: function(element){
                            return $('#create_delivery').val() != 'false'
                        }
                    },
                },

                delivery_quantity:
                {
                    required:  {
                        depends: function(element){
                            return $('#create_delivery').val() != 'false'
                        }
                    },
                    digits: {
                        depends: function(element){
                            return $('#create_delivery').val() != 'false'
                        }
                    },
                },
            },
        });

    }, // конец success
    error : function(xhr,errmsg,err) {
        $('#modal_window').html('Произошла ошибка. Попробуйте обновить страницу.'+close_link);
    } // конец error
    }); // конец ajax

});
//

0 个答案:

没有答案