如何在我的JQUERY提交中添加额外数据
本文关键字:添加 数据 提交 我的 JQUERY | 更新日期: 2023-09-27 17:57:46
在我的剃刀视图中,我使用的是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');
您可以在表单中添加一个具有所需名称和值的隐藏输入。该值将与所有其他表单项一起提交。
<input type="hidden" name="someName" value="someValue" />
编辑评论:
如果你把每个提交按钮的值作为一个属性,你可以在点击处理程序中获取它,然后在表单中添加一个带有值的隐藏字段
$(function(){
$('#form input[type=submit]').click(function(e) {
var val = this.getAttribute("data-param");
$(this).closest('form').append('<input type="hidden" name="param" value="' + val + '" />");
});
});
没有测试,只是一种预感。希望表单提交事件不会在按钮单击事件之前被触发。此外,您还需要处理输入事件和按键等。
为什么不想使用ajax?
根据您的评论,对您来说最简单的事情就是制作类型为submit
的按钮,并给它们一个name
。如果他们有name
,则单击的按钮的value
将与表单一起自动发送,请参阅:发送表单';s提交按钮';s值?
示例:
当单击a
按钮时,将使用值a
发布parameter
。对于CCD_ 12和CCD_。如果单击none
按钮,则不会发送任何值,并且parameter
将为null
(显示用于演示目的,您可能不需要此项)。
@using (Html.BeginForm("Index", "Quiz", FormMethod.Post, new { id = "form" }))
{
...
<input type="submit" value="a" name="parameter" />
<input type="submit" value="b" name="parameter" />
<input type="submit" value="c" name="parameter" />
<input type="submit" value="none" />
}