【问题标题】:Razor Html.BeginForm Submit button works in every browser except chromeRazor Html.BeginForm 提交按钮适用于除 chrome 之外的所有浏览器
【发布时间】:2018-01-11 16:24:50
【问题描述】:

我一直在搜索并找到各种答案,但到目前为止似乎没有人在这里遇到我的问题。看到在其他浏览器中不起作用但还没有 chrome 的东西,我不太使用 chrome。我的问题是,当我单击此登录表单的提交按钮时,它可以在除 chrome 之外的每个浏览器中使用。表单似乎没有发布,因为使用 chrome 时甚至没有点击控制器。知道我做错了什么吗?我应该补充一点,调试器控制台中的错误为零。

这是我的整个剃须刀页面减去上面的@model 语句。 javascript旨在显示一个有效的微调器。只是表单发布没有,只有在 chrome 中。

<div class="row">
	<div class="col-xs-4 col-xs-offset-4 col-md-2 col-md-offset-5 text-center">
			@using (Html.BeginForm("Authorize", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "clearfix", role = "form", autocomplete="off" }))
			{
				<div class="form-group">
					@Html.AntiForgeryToken()
					<h3><i class="fa fa-sign-in" aria-hidden="true"></i> Sign In With Domain Credentials</h3>
					<div id="validationSummary" class="">
						@Html.ValidationSummary(true, "", new { @class = "control-label text-danger" })
					</div>
					<p class="form-control-feedback text-danger"></p>
					<div class="form-group">
						@Html.LabelFor(Model => Model.UserName, new { @class = "control-label" })
						@Html.TextBoxFor(Model => Model.UserName, new { @class = "form-control" })
						@Html.ValidationMessageFor(Model => Model.UserName, "", new { @class = "text-danger" })
					</div>
					<div class="form-group">
						@Html.LabelFor(Model => Model.Password, new { @class = "control-label" })
						@Html.PasswordFor(Model => Model.Password, new { @class = "form-control" })
						@Html.ValidationMessageFor(Model => Model.Password, "", new { @class = "text-danger" })
					</div>
					<div class="form-group">
						<button id="submit-button" type="submit" class="btn btn-primary btn-block active" >Sign In</button>
					</div>
				</div>
			}
	</div>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/scripts")
<script type="text/javascript">
	$(document).ready(function () {
		var valSummary = $('#validationSummary');
		var submitButton = $('#submit-button');
		$('#submit-button').click(function () {
			console.log("Button Clicked");
			$("#submit-button").html("<i class=\"fa fa-spinner fa-pulse\"></i> Signing In...").prop('disabled', true);
			console.log("Click finished");
		});
	});
	console.log("Button setup");
</script>

【问题讨论】:

    标签: asp.net google-chrome razor


    【解决方案1】:

    所以我花了几天时间调试它,但从未弄乱微调器代码。我从其他地方复制了这个按钮微调器的想法,并没有弄乱它。 .prop('disabled', true); 禁止多次单击按钮似乎适用于除 chrome 之外的所有内容。这可能是问题所在。我想我必须找到另一种在登录时禁用该按钮的方法,这不会导致 Chrome 浏览器出现故障......

    $('#submit-button').click(function () { console.log("Button Clicked"); $("#submit-button").html("<i class=\"fa fa-spinner fa-pulse\"></i> Signing In...").prop('disabled', true); console.log("Click finished"); });

    【讨论】:

    • .prod('disabled') 绝对是 Chrome 中的问题。我通过不禁用按钮解决了这个问题。我认为根本原因是点击处理程序在提交处理程序之前触发。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    相关资源
    最近更新 更多