sup*_*ser 1 javascript ajax asp.net-mvc
我认为这很简单,但我无法在任何地方找到如何做到这一点,正如标题所示,成功提交表单帖子后如何执行 ajax 帖子。我试图搜索它,但我看到的只是与我需要的相反,这是在 ajax 发布后提交的。我会尝试制作一个与我正在做的非常相似的程序草案。
这是我的表格。
<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>
}
Run Code Online (Sandbox Code Playgroud)
这是一个 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));
});
}});
Run Code Online (Sandbox Code Playgroud)
现在我想要发生的是,当我提交该表单时,如果提交成功,则会触发 ajax 帖子。所以这就像在一个按钮中发布两次,不同的是,另一个是表单提交,而另一个是 ajax 发布。请帮忙。
您应该做的是使用 jQuery“接管提交按钮”,然后在内部使用 ajax 调用。
例如有这个提交按钮:
<input type="submit" value="Submit" onsubmit="$('#your-form-id-here').submit()">
Run Code Online (Sandbox Code Playgroud)
通过使用 ajax 调用这个 jQuery 提交函数,应该可以让您很好地了解该做什么。
$('#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);
}
});
});
Run Code Online (Sandbox Code Playgroud)
这基本上采用您的正常表单,并通过 ajax 调用将其发送到您的正常表单操作,因此基本上它的工作方式与正常情况一样,但是您现在有机会在表单操作 php 文件以及 ajax 中执行操作成功数据。例如,您可以使用它直接向您的用户传递验证消息,而无需刷新您的网站。等等...
| 归档时间: |
|
| 查看次数: |
3072 次 |
| 最近记录: |