如何在我的JQUERY提交中添加其他数据?

在我的剃刀视图中,我使用的是Html.BeginForm 。 在其中我有两个元素,当我设置clic时,应该提交表单但我需要添加一个额外的字符串参数。

 @using (Html.BeginForm("Index", "Quiz", FormMethod.Post, new { id = "form" })) { ... } [HttpPost] public ActionResult Index(string parameter, QuizCompletedViewModel q) //FormCollection f) { ... if (button.Equals("d")) { ... return RedirectToAction("ShowResults", new { testId = Quiz.QuizId, answeredTest = answeredId }); } else { ... return RedirectToAction("Index", "Dashboard"); } } 

因此,在我的jquery函数中,我使用$("#element").submit()并且参数parameter始终为null(这是正常的)。 如何使用JQUERY为parameter添加其他数据?

注意:我没有使用AJAX。

在您的表单sumbit尝试这样:

  $("form").submit(function(){ $.ajax({ type: 'POST', url: "/Quiz/Index", dataType: "json", data: $("form").serialize() + '&parameter=param1' , success: function () { alert("Successful"); } error: function(){ alert('error'); } }); }); 

希望能帮助到你。


编辑

在你的jQuery函数中尝试这样:

 $('form').append('&param=a'); 

您可以使用表单中所需的名称和值添加隐藏的输入。 此值将与所有其他表单项一起提交。

  

编辑评论:

如果您将每个提交按钮作为属性提供,则可以在单击处理程序中获取它,然后在表单内附加一个带有值的隐藏字段。 就像是:

 $(function(){ $('#form input[type=submit]').click(function(e) { var val = this.getAttribute("data-param"); $(this).closest('form').append('"); }); }); 

未经测试,只是预感。 希望在按钮单击事件之前不会触发表单提交事件。 您还需要处理输入事件和按键等。

你为什么不想用ajax?

根据您的评论,您最简单的方法是让您的按钮类型submit并为其name 。 如果他们有一个name ,点击按钮的value将自动与表格发送 ,请参阅: 发送表单的提交按钮的值?

例:

单击a按钮时, parameter将以值a发布。 同样适用于bc 。 如果单击“ none按钮,则不会发送任何值,并且parameter将为null (显示为了演示目的,您可能不需要此项)。

 @using (Html.BeginForm("Index", "Quiz", FormMethod.Post, new { id = "form" })) { ...     }