Jquery symfony2使用ajax模拟多个提交按钮

Jquery symfony2使用ajax模拟多个提交按钮,jquery,symfony,form-submit,symfony-forms,symfony-2.3,Jquery,Symfony,Form Submit,Symfony Forms,Symfony 2.3,2.3的这一新功能具有多个提交按钮 但是我用ajax发送我的表单 $.post("{{ path('order_ad_banner') }}", $('#adOrderForm').serialize() + "&" + $.param({url: "{{ url }}"}), function (data) { $('#formWindow').html(data); } ); 这是我的按钮: publi

2.3的这一新功能具有多个提交按钮
但是我用ajax发送我的表单

$.post("{{ path('order_ad_banner') }}",
        $('#adOrderForm').serialize() + "&" + $.param({url: "{{ url }}"}),
        function (data) {
            $('#formWindow').html(data);
        }
    );
这是我的按钮:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
       ....
        ->add('step2submit', 'submit', array('validation_groups' => array("order step 2")))
        ->add('step3submit', 'submit')
        ->add('step4submit', 'submit')
    ;
}
如何使用ajax模拟使用“step2submit”按钮提交

编辑:找到解决方案->在发布前向表单添加隐藏字段

var input = $("<input>").attr("type", "hidden").attr("name",     'adOrder[step2submit]').val("");
    $('#adOrderForm').append(input);
    $.post("{{ path('order_ad_banner') }}",
            $('#adOrderForm').serialize() + "&" + $.param({url: "{{ url }}"}),
            function (data) {
                $('#formWindow').html(data);
            }
    );
var input=$(“”).attr(“类型”,“隐藏”).attr(“名称”,“adOrder[step2submit]”).val(“”);
$('#adOrderForm')。追加(输入);
$.post(“{path('order_ad_banner')}}”,
$('#adOrderForm').serialize()+“&”+$.param({url:{url}}}),
功能(数据){
$('#formWindow').html(数据);
}
);

操作dom可能不是最好的解决方案。 当浏览器将单击的按钮添加为另一个没有值的参数时,您可以执行相同的操作,并在通过ajax发送之前手动将其添加到序列化数据中。 使用这段代码,您只需要将“submit button”类添加到您的按钮中,它的命名更加灵活(因此,如果您在php代码中重命名按钮,它仍然可以工作)


您是否尝试过触发
。单击
step2submit
按钮上的()。您可以添加此问题的答案并接受它以关闭它。
$('.submit-button').on('click', function(){
  var data = $(this).parents('form').first().serializeArray();
  data.push( {'name':$(this).attr('name')});
  $.ajax({
      type: 'POST',
      url: $(this).parents('form').first().attr('action'),
      dataType: 'html',
      data : data,
      success: function(answer) {
        //do something with the answer
      },
      error: function() {
      },
      complete: function() {
      }
  });
  return false;
});