gpt4 book ai didi

javascript - 使用 JavaScript 在 AJAX beginform 上中止表单提交

转载 作者:行者123 更新时间:2023-11-28 03:42:34 25 4
gpt4 key购买 nike

我正在使用 .NET MVC。我的问题是,如果 JavaScript 语句为 true,我需要中止 AJAX 调用。

<div class="Filter_inner_title white_unifrom out-of-grid">
@using (Ajax.BeginForm("Search", "Protocol", new AjaxOptions
{
HttpMethod = "GET",
UpdateTargetId = "ajax-content"
}, new { id = "form" }))
{
<div class="head-sys-content dotted-gray-bg white-unifrom-small">
<ul class="table-head-branch">
<li>
<ul class="Select_box_white_bg">
<li>
<label class="label">@Html.DrawLabel("BoxNr")</label>
@Html.TextBoxFor(model => Model.Search.BoxNumber, new { @class = "text", @style = "width: 70px" })
</li>
<li id = "FromDateContainer">
<label class="label">@Html.DrawLabel("from")</label>
@Html.TextBoxFor(model => Model.Search.FromDate, new { @class = "text datePicker" })
<div class="validation-protocol-message">
@Html.ValidationMessageFor(model => Model.Search.FromDate)
</div>
</li>
<li>
<label class="label">@Html.DrawLabel("to")</label>
@Html.TextBoxFor(model => Model.Search.ToDate, new { @class = "text datePicker" })
@Html.ValidationMessageFor(model => Model.Search.ToDate)
</li>
<li>
<div class="medium-chosen left">
<label class="label">@Html.DrawLabel("protocolType")</label>
@Html.DropDownListFor(model => Model.Search.ProtocolType, new SelectList(Model.ProtocolTypeList, "ID", "Label.Text", Model.Search.ProtocolType), Html.DrawLabel("all"), new { @class = "chosen-select" })
</div>
</li>
</ul>
@Html.HiddenFor(model => Model.Search.PageIndex, new { @class = "PageIndex", @id = "PageIndex" })
@Html.HiddenFor(model => Model.Search.ContractId)
@Html.HiddenFor(model => Model.Search.IsFromContract)
<div class="big-button search left">
<input type="submit" value="@Html.DrawLabel("search")" id="SubmitButton" class="arrow-search" />
</div>
</li>
</ul>
</div>
}

这是表格。

$("#form").on("submit", function (e) {
debugger;

var FromDate = $("#Search_FromDate").val();
var ToDate = $("#Search_ToDate").val();
var FromDateConvert = Globalize.parseDate(FromDate, datePattern);
var ToDateConvert = Globalize.parseDate(ToDate, datePattern);
var fromYear = FromDateConvert.getFullYear();
var toYear = ToDateConvert.getFullYear();
if (fromYear < 1970) {
$("#FromDateContainer span.field-validation-valid").html("@String.Format(Html.DrawLabel("DateOutOfBounds"),Model.Search.FromDate)");
$("#FromDateContainer span.field-validation-valid").attr("class", "field-validation-error");
//$(".field-validation-error").css("position", "absolute");
}
});

如果 if 语句为 true,我需要中止开始的表单调用。有没有办法停止该特定触发器的每次调用?

最佳答案

我通过使用简单的 from 并在前端验证后进行 ajax 调用解决了这个问题

var datePattern = '@(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern)';

$("#form").on("submit", function (e) {
debugger;
e.preventDefault();
var FromDate = $("#Search_FromDate").val();
var ToDate = $("#Search_ToDate").val();
var FromDateConvert = Globalize.parseDate(FromDate, datePattern);
var ToDateConvert = Globalize.parseDate(ToDate, datePattern);
var fromYear = FromDateConvert.getFullYear();
var toYear = ToDateConvert.getFullYear();

if (fromYear < 1970 && toYear < 1970) {

$("#ToDateContainer span.field-validation-error").html("@String.Format(Html.DrawLabel("DateOutOfBounds"),Model.Search.FromDate)");

$(".field-validation-error").html("");
$("#ToDateContainer span.field-validation-valid").addClass("field-validation-error");
$("#FromDateContainer span.field-validation-valid").html("@String.Format(Html.DrawLabel("DateOutOfBounds"),Model.Search.FromDate)");
$("#FromDateContainer span.field-validation-valid").attr("class", "field-validation-error");
$("#ToDateContainer span.field-validation-valid").html("@String.Format(Html.DrawLabel("DateOutOfBounds"),Model.Search.FromDate)");
$("#ToDateContainer span.field-validation-valid").attr("class", "field-validation-error");
$(".field-validation-error").show();

}
else if (fromYear < 1970) {
$(".field-validation-error").html("");
$("#FromDateContainer span.field-validation-valid").html("@String.Format(Html.DrawLabel("DateOutOfBounds"),Model.Search.FromDate)");
$("#FromDateContainer span.field-validation-valid").attr("class", "field-validation-error");
$(".field-validation-error").show();
}
else if (toYear < 1970) {
$(".field-validation-error").html("");
$("#ToDateContainer span.field-validation-valid").html("@String.Format(Html.DrawLabel("DateOutOfBounds"),Model.Search.FromDate)");
$("#ToDateContainer span.field-validation-valid").attr("class", "field-validation-error");
$(".field-validation-error").show();
}


else {
$(".field-validation-error").html("");
$.ajax({
url: '@Url.Action("Search", "Protocol")',
contentType: "application/json; charset=utf-8",
data: $(this).serialize(),
success: function (data) {
$('#ajax-content').html(data);
}
});

}

关于javascript - 使用 JavaScript 在 AJAX beginform 上中止表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48810644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com