2

到目前为止我有这个:

 <% 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 的值

4

4 回答 4

5

简化答案。

您正在使用不正确的重载。请参阅MSDN上的重载列表以了解要使用的内容。

您当前的重载需要路由信息作为第三个参数。您提供的任何值都将与为站点定义的路由匹配。如果任何参数不匹配,它们将被简单地添加为获取参数。

您要实现的是为ID表单分配一个或另一个属性。这是使用允许定义 html 属性的重载完成的(请参阅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()"}))

这将生成类似于

 <form action="/Controller/Action?FU=Hello" method="post" id="MyID" onsumbit="return sayHello()">

并结合脚本

<script>
    function sayHello()
    {
        alert("Hello");
        return true;
    }
</script>

会给你警报,以及发送FU给控制器。

// 更新 这是您可以更新表单的动作属性的方法。

<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>
于 2013-08-28T12:25:06.580 回答
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);
    });
于 2013-08-28T12:06:57.437 回答
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>
于 2013-08-28T12:07:54.373 回答
0
<script type="text/javascript">
$(document).ready(function () {

    $('#formID').submit(function (e) {
        e.preventDefault();
         $('#yourOtherID').attr(newValue);
    });

});
</script>
于 2013-08-28T12:10:48.043 回答