2015-04-29 73 views
0

我认为这很简单,但我无法找到任何地方如何做到这一点,正如标题所说,如何在成功提交表单后发布ajax文章。我试图寻找它,但我所看到的只是我在ajax文章后提交的内容。我会尝试编写一个与我正在进行的工作非常相似的程序。
这是我的表格。如何在提交表单后提交Ajax POST

<h2>My Form </h2> 
@using (Html.BeginForm(new { @class = "submitForm" })) 
{ 
    <label>Loan Amount</label> 
    @Html.DropDownListFor(model => model.Loan.LoanAmount, Model.DropDownOfLoanAmount, new { @class = "LoanAmount", @data_bind = "value: selectedLoanAmount" }) 
    @Html.ValidationMessageFor(model => model.Loan.LoanAmount) 

    <label>Loan Receivable</label> 
    @Html.TextBoxFor(model => model.Loan.LoanReceivable, "{0:0,0.00}", new { @class = "LoanReceivable", @readonly = true, dir = "rtl", @data_bind = "value: loanReceivable" }) 
    @Html.ValidationMessageFor(model => model.Loan.LoanReceivable) 

    <label>Interest</label> 
    @Html.TextBoxFor(model => model.Loan.Interest, "{0:0,0.00}", new { @readonly = true, @class = "Interest", dir = "rtl", @data_bind = "value: interest" }) 

    <table class="input-group"> 
     <tbody data-bind="foreach: loanDeductions"> 
      <tr> 
       <td><strong data-bind='text: deductionName'></strong></td> 
       <td> 
        <input class="deductionCode form-control" data-bind='value: amount, valueUpdate: "afterkeydown"' /></td> 
       <td><a href='#' data-bind='click: $parent.removeLine'>Delete</a></td> 
      </tr> 
     </tbody> 
    </table> 

    <button type="button" class="btn btn-danger">Save Deduction</button> 

    <button type="submit" class="btn btn-primary">Save changes</button> 
} 

这是一个例子阿贾克斯后(不介意后的逻辑):

$.ajax({ 
'url' :'@Url.Action("UpdateDeductionValues","LoanApp")', 
'data': {amount : $('.LoanAmount').val()}, 
'success': function(result) { 
$.each(result, function (idx, items) { 
$('.' + items.Code + '').val(items.Amount.toFixed(2)); 
    }); 
    }}); 

现在我希望发生的是,当我提交该表格,如果提交成功,阿贾克斯职位被触发。所以它像在一个按钮中发布2次,不同之处在于另一个是表单提交,而另一个是ajax帖子。 PLS帮助。

+1

当你做一个正常的提交你离开页面(没有代码运行)。 –

+0

@StephenMuecke所以我想要做什么是不可能的?你能提出一种解决方法吗? –

+0

为什么不将Ajax数据包含到表单数据中,或者反过来呢? – Robert

回答

4

你应该做的是用你的jQuery“接管提交按钮”,然后在里面使用ajax调用。

例如有这个提交按钮:

<input type="submit" value="Submit" onsubmit="$('#your-form-id-here').submit()"> 

既然这样的jQuery提交功能与Ajax调用,应该给你做什么心中有数。

这基本上需要你的正常形态,并通过你的Ajax调用发送到你的正常形态的动作,所以基本上它的工作原理就像正常的,但你现在有机会做的东西在你的表单操作PHP文件,并在您的Ajax成功数据。例如,您可以使用它将验证消息直接发送给您的用户,而无需刷新您的网站。等等...

+0

我不知道我试图达到什么是不可能与正常提交第一,这是一个很好的解决方法。谢啦。对不起,我很新学习网页开发 –

+0

我很高兴你可以使用它,我不擅长解释事情......但...... :) – balslev

1

我不知道你想要做什么,提交表单后页面的Ajax请求会重新加载。

但是如果需要在提交表单之后再做ajax请求,你只需要一个ajax调用。但是这在每次页面加载时都会起作用。

我认为你需要做两个Ajax请求第一个是提交表单,如果调用成功,然后调用第二个请求。