如何在表单Serialize()ajax中包含提交按钮名称和值

时间:2013-07-10 08:54:49

标签: javascript ajax jquery javascript-events

我遇到麻烦,我的代码无效,因为我的服务器脚本端需要提交按钮的名称。我使用Ajax方法,并使用数据:序列化,当我点击Sumbit时,它不起作用。这是我的JavaScript代码:

        $(function(){
            $('#buy_product').submit(function(e){
                e.preventDefault();
                var submitData = $('#buy_product').serialize();
                    submitData.push({ name: this.name, value: this.value });
                $('.loading').html('{{HTML::image('img/ajax-loader.gif')}}');
                $.ajax({
                    type: "POST",
                    data: submitData,
                    url: "{{URL::base()}}/products/view/{{$products->id}}/{{Str::slug($products->name_product, '_')}}",
                    success: function(msg){
                        $('#qty').val(''); 
                        $('.loading').html(msg);
                    }
                });
            }); 
        }); 

如果你有线索,请告诉我,我很高兴。万分感谢


我的按钮是这样的:

<input name="update" id="update" type="submit" value="update">

<input name="empty" id="empty" type="submit" value="empty">

2 个答案:

答案 0 :(得分:1)

我相信你做不到,但你可以使用隐藏的字段

<input type="hidden" name="any_name" value="any_value" />

答案 1 :(得分:0)

试试这个:

Javascript代码:

<script type='text/javascript'>
        $(function(){
            $('#form').submit(function(e){
                e.preventDefault();
                var submitData = $('#form').serialize();
                var btnName = $('#submit').attr('name');
                var btnVal = $('#submit').val();
                var btn = '&'+btnName+'='+btnVal;
                submitData += btn;
                alert(submitData);                

            }); 
        }); 
</script>

HTML代码:

<form action="" id="form" type='post'>
    <input type="text" name="name" id="name" value='Scott'/>
    <input type="submit" name="submit" id="submit" value='POST'/>
</form>

或使用:

var submitData = $('#buy_product').serialize();
submitData += '&btnName=' +  $('#your_submitbtn_id').attr('name') + '&btnValue='+ $('##your_submitbtn_id').attr('value');