使用jQuery提交表单时传递额外的变量

Mic*_*yen 20 forms jquery post

我有一个表单,其中提交按钮不在<form>标签内.提交按钮有一个click处理程序,可以通过jQuery的submit()事件提交表单.这非常有效.

但是,我还需要提交按钮的值进行POST.由于<form>标签中不存在该按钮,因此它不包含在POST阵列中.因此,我需要设计一种在提交表单时传递额外变量的方法.

关于不可能实现这一目标的一些规定包括:

  • 无法在<form>标签内移动"提交"按钮.
  • 它不能使用jQuery的ajax,postget方法.
  • 它不能有隐藏的input字段或提交CSS隐藏的按钮.
  • 表单的行为必须与表单中的正常"提交"按钮完全相同.

我设想了类似的东西,但显然这不起作用.

$('#admin_form').submit({'variable_name', 'true'});
Run Code Online (Sandbox Code Playgroud)

有人对我如何实现这一点有任何想法吗?

Jes*_*hen 35

您可以做的一件事是使用该onsubmit属性让javascript将一个post字段注入表单,并在提交时使用提交按钮的值.您必须使用隐藏的输入字段执行此操作,但您只需在用户单击提交按钮后立即添加输入字段 - 因此输入字段从一开始就不存在(希望这满足您的要求) ).所以类似于:

 function submitHandler()
 {
     submitVal = $('#submitButton').val();
     $('#myForm').append("<input type='hidden' name='submitValue' value='"+
                         submitVal+"' />");
     return true;
 }
Run Code Online (Sandbox Code Playgroud)

当单击按钮时,这会在额外的值中保持正确.