到目前为止,我有这个:
<% foreach (Object object in Collection)
{
u<% using (Html.BeginForm("ActionName", "Controller", new { FU = "bar" }, FormMethod.Post, new { ID = "MyID"}))
{%>
<input type="submit" value="Submit" />
<%}
} %>
$('#MyID').submit(function() {
var url = Url.Action("ActionName", "ControllerName");
var fu = "newValueOfFU"; // New value for FU
$('#MyID').prop('action', url + "?FU=" + fu);
});
我想用jQuery
中的值更改FU的值答案 0 :(得分:5)
简化答案。
您使用的是错误的重载。请参阅MSDN上的重载列表,了解要使用的内容。
您当前的重载需要将路由信息作为第3个参数。您提供的任何值都将与为站点定义的路由进行匹配。如果任何参数与之匹配,则只需将它们添加为get参数。
您要实现的目标是为表单指定ID
或其他属性。这是使用重载来完成的,该重载允许定义html属性(参见Overload on MSDN。例如,
@using(Html.BeginForm("Action", "Controller", FormMethod.POST, new {ID = "MyID"}))
注意:参数的顺序为不同。
只需查看生成的html,您就会知道发生了什么。
//更新
使用此
@using(Html.BeginForm("Action", "Controller", new {FU="bar"}, FormMethod.POST, new {ID = "MyID", onsubmit="return sayHello()"}))
这将生成类似于
的html <form action="/Controller/Action?FU=Hello" method="post" id="MyID" onsumbit="return sayHello()">
并结合脚本
<script>
function sayHello()
{
alert("Hello");
return true;
}
</script>
会向您发出警报,并将FU
发送给控制器。
//更新 这是您更新表单的action属性的方法。
<script>
$('#MyID').submit(function() {
var url = @Url.Action("Action","Controller");
var fu = "newValueOfFU"; // New value for FU
$('#MyID').prop('action', url + "?FU=" + fu;
return true;
});
</script>
答案 1 :(得分:0)
您可以使用以下jQuery代码
$('form').submit(function(){
$(this).attr('ID', newVal);
});
或者您可以为表单指定ID,如
using (Html.BeginForm("ActionName", "Controller", FormMethod.Post, new { @id = "myForm", FU = "Hello" }))
并使用它来挂钩提交
上的事件$('#myForm').submit(function(){
$(this).attr('ID', newVal);
});
答案 2 :(得分:0)
您可以在HTMLAttributes中添加onSubmit事件处理程序并更改其中的ID。
<% using (Html.BeginForm("ActionName", "Controller", new { ID = "Hello", onsubmit = "return changeID();" }, FormMethod.Post))
{%>
<input type="submit" value="Submit" />
<%} %>
并在页面的某处添加以下脚本。
<script type="text/javascript">
function changeID() {
document.getElementById('Hello').id = 'Your_New_Value';
return true;
}
</script>
答案 3 :(得分:0)
<script type="text/javascript">
$(document).ready(function () {
$('#formID').submit(function (e) {
e.preventDefault();
$('#yourOtherID').attr(newValue);
});
});
</script>