我已经看到多个与此类似的问题,说 unobtrusive 被引用了两次,删除一个解决了问题,但我已经检查过,它似乎只被引用了一次。当我删除我的表单提交的单个引用时,我应该这样做,但我没有利用我试图以不引人注目的方式利用的“内联”功能。
当我查看我的 html 时,这些是包含的 .js 文件,不确定是否与另一个库有冲突?我尝试一次删除一个,但它似乎并没有解决我的问题,只有当我删除 jquery.unobtrusive-ajax.min.js
时,表单才会提交一次,但我需要它!
<script src="/assets/js/jquery-1.10.2.js">
<script src="/assets/js/jquery.mask.min.js">
<script src="/assets/js/jquery-ui-1.10.3.custom.min.js">
<script src="/assets/js/jquery.validate.js">
<script src="/assets/js/jquery.validate.unobtrusive.js">
<script src="/assets/js/jquery.unobtrusive-ajax.min.js">
<script src="/assets/js/zCustomAttributeValidation.js">
<script src="/assets/js/nojs.js">
<script src="/assets/js/bootstrap.js">
<script src="/assets/js/respond.js">
<script src="/assets/js/global.js">
<script src="/assets/js/spinner.js">
<script src="/assets/js/toastr.js">
<script src="/assets/js/systemx.js">
<script src="/assets/js/systemx.widgets.js">
可能是我们的其他东西,这是我的表格:
@using (noJs ? Html.BeginForm("MyAction", "MyController", new MyModel() { ItemID = myVal, AsyncUpdateID = string.Empty, RawReturnUrl = Request.RawUrl }.GetRouteValues(), FormMethod.Post) : Ajax.BeginForm("MyAction", "MyController", new MyModel() { ItemID = myVal, AsyncUpdateID = string.Empty, RawReturnUrl = Request.RawUrl }.GetRouteValues(), new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "item-" + myVal.ToString(), OnBegin = "ShowBusyIndicator('item-" + myVal.ToString() + "')" }))
{
@Html.AntiForgeryToken()
<div class="float-left margin-rt-5">
<input id="myButton" type="submit" class="btn btn-default" value="@HttpUtility.HtmlDecode("Submit »")" />
</div>
}
最佳答案
事实证明,我看到其他人都遇到了同样的问题。我添加了两次 unobtrusive,我想是因为它只在我没有这样做的时候才出现在 HTML 的那个部分,但是当我看一下生成的 HTML 作为一个整体时,它出现了两次。
关于javascript - 不显眼地提交 Ajax 表单两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30462548/