我使用以下代码发布表单但是没有将表单数据传递给后面的代码?
<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>
我有一个主窗体调用另一个方法来保存一个,所以我需要两个提交,但它似乎不是从表单发布数据?
答案 0 :(得分:0)
在帖子的第一个参数中,您需要指定服务的完整路径。例如:
$.post("http://localhost:8080/Orders/SaveExtra", formData, function(result){...}
另外,如果您的jquery版本高于1.7,建议您使用.on()更改.live(),因为.live()已弃用。
答案 1 :(得分:0)
如果您收到的数据是JSON
,我会将其作为datatype
值添加到POST调用中。
$.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");
});
});