0

我正在使用以下代码发布表单,但没有将表单数据传递给后面的代码?

 <script type="text/javascript">
        $(document).ready(function () {

            $("#Submit").live("click", function () {
                var formData = $("#CreateOrder").serialize();
                $.post("/Orders/SaveExtra", formData, function (result) {                    
                    if (result.created) {
                        alert("Saved successfully!");
                    } else {
                        alert("Error!");
                    }
                });                
            });
        });
    </script>

    <input id='Submit' type='submit' value='Save Extra' style="height: 30px; width: 130px; margin-top:8px;margin-right: 15px; float:right " />   

<form id="CreateOrder" method="post" action="/Orders/Create" enctype="application/x-www-form-urlencoded" >     


...

</form>

我的主表单调用了与保存方法不同的方法,所以我需要两次提交,但它似乎没有从表单中发布数据?

4

2 回答 2

0

在帖子的第一个参数中,您需要指定服务的完整路径。例子:

$.post("http://localhost:8080/Orders/SaveExtra", formData, function(result){...}

附带说明一下,如果您的 jquery 版本高于 1.7,建议您将 .live() 更改为 .on(),因为不推荐使用 .live()。

于 2012-06-06T10:23:23.837 回答
0

如果您收到的数据是JSON,我会将其作为值添加到 POST 调用中datatype

   $.post("/Orders/SaveExtra", formData, function (result) {                    
           if (result.created) {
                alert("Saved successfully!");
            } else {
                   alert("Error!");
            }
   },"json");

如果您使用的是 jQuery 1.7+,我建议您切换到on而不是live. 所以你的代码看起来像

 $(function(){
      $(document).on("click","#Submit",function(e){
          e.preventDefault();
          var formData = $("#CreateOrder").serialize();
          $.post("/Orders/SaveExtra", formData, function (result) {                    
              if (result.created) {
                   alert("Saved successfully!");
               } else {
                   alert("Error!");
               }
         },"json");   
       });
 });
于 2012-06-06T12:07:25.627 回答