如何在我的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() + '¶meter=param1' , success: function () { alert("Successful"); } error: function(){ alert('error'); } }); });
希望能帮助到你。
编辑
在你的jQuery函数中尝试这样:
$('form').append('¶m=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
发布。 同样适用于b
和c
。 如果单击“ none
按钮,则不会发送任何值,并且parameter
将为null
(显示为了演示目的,您可能不需要此项)。
@using (Html.BeginForm("Index", "Quiz", FormMethod.Post, new { id = "form" })) { ... }