当前位置: 首页 > 面试题库 >

表单提交后如何进行Ajax POST

柴衡
2023-03-14
问题内容

我认为这很简单,但是正如标题所示,在任何地方都找不到如何执行此操作的方法,就像成功提交表单后如何处理ajax一样。我尝试搜索它,但所看到的只是我需要的相反内容,即在ajax发布后提交。我将尝试草拟与Im正在研究的程序非常相似的程序
这是我的表格。

<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帖子的示例(不要介意该帖子的逻辑):

$.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));
  });
  }});

现在,我想做的就是提交表单时,如果提交成功,就会触发ajax发布。因此,就像在一个按钮中发布2次一样,不同之处在于另一个是表单提交,而另一个是ajax发布。PLS帮助。


问题答案:

您应该做的是使用jQuery“接管提交按钮”,然后在内部使用ajax调用。

例如,具有此提交按钮:

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

并通过ajax调用使用jQuery Submit函数,应该给您一个很好的主意。

$('#your-form-id-here').submit(function (e) {

    e.preventDefault();
    var senddata = $(this).serializeArray();
    var sendto = $(this).attr("action");

    $.ajax({
        url: sendto,
        type: 'POST',
        data: senddata,
        success: function (data) {
            $('.messages').html(data);
        },
        error: function (error) {
            $('.messages').html(error);
        }
    });
});

这基本上采用您的正常形式,并通过您的Ajax调用将其发送到您的正常形式动作,因此基本上它的工作原理与正常一样,但是您现在有机会在您的形式动作php文件以及您的Ajax中进行操作成功数据。例如,您可以使用它直接将验证消息传递给您的用户,而无需刷新您的网站。等等…



 类似资料:
  • 问题内容: 我有一个简单的表单,其中remote = true。 此表单实际上位于HTML对话框中,单击“提交”按钮后,该对话框将立即关闭。 现在,在成功提交表单之后,我需要在HTML主页面上进行一些更改。 我尝试使用jQuery。但是,这不能确保任务在表单提交的某种形式的响应之后得到执行。 如何附加回调,以便仅在成功提交表单后执行我的代码?有什么方法可以向表单添加一些.success或.comp

  • 问题内容: 问题 我有一个表单,提交后将运行基本代码来处理提交的信息,并将其插入数据库中以显示在通知网站上。此外,我还有一个列表,他们注册了通过电子邮件和SMS消息接收这些通知的人员。此列表暂时是微不足道的(仅推送约150个),但是足以导致花费一分钟以上的时间在整个订户表中循环并发送150多个电子邮件。(由于批量电子邮件政策,电子邮件是根据我们的电子邮件服务器的系统管理员的要求单独发送的。) 在此

  • 对于如何控制表单中的提交事件,我有点困惑,我试图在这里找到一个简单的答案。 我想在将表单数据发送到表单操作脚本之前验证表单输入。我试图通过捕获submit事件、使用Ajax调用验证脚本来解决这个问题,如果验证成功,我希望调用实际的表单过程。但我不确定该如何进行。简单地使用似乎会失败(我猜是没有发送表单值)。 下面是概念代码: null null

  • 问题内容: 我想在点击提交按钮时验证WordPress帖子上的用户条目,显示错误消息是否存在问题,如果一切正常,则提交表单。我有一个PHP函数进行检查,如果输入的数据还可以,则返回,否则返回一些错误代码。以下JavaScript发出AJAX请求,并应在成功检查后继续提交表单,但不会: 该代码是根据WPSE问题改编的,该问题最初对我不起作用,因为未提交表单。我发现,如果绑定到的jQuery函数返回t

  • 问题内容: 我有一个ID为ID的表单,该表单具有以下div,其中包含一个Submit按钮: 单击后,将调用该函数。该函数将上述div的innerHTML更改为“ processing …”(因此,提交按钮现在消失了)。 上面的代码有效,但是现在的问题是我无法提交表单!我试着把它放在函数中: 但这是行不通的。 我该如何提交表格? 问题答案: 将表单的属性设置为,代码即可正常工作。

  • 问题内容: 我正在尝试使用phantomJS(真棒的工具!)为具有登录凭据的页面提交表单,然后将目标页面的内容输出到stdout。我可以使用幻像访问该表单并成功设置其值,但是我不太确定提交表单并输出后续页面内容的正确语法。到目前为止,我有: 问题答案: 我想到了。基本上,这是一个异步问题。您不能只是提交并期望立即呈现下一页。您必须等到触发下一页的onLoad事件。我的代码如下: