Javascript 使用jQuery.validate禁用表单字段时的ASP.NET核心视图模型
我有一个HTML表单,我希望当用户单击submit按钮时,该按钮和表单中主要的所有输入元素文本框都被禁用,以防止它们更改任何数据,或者再次单击该按钮。我在表单上使用jQuery.validate,而不使用不引人注目的插件 表单的标记看起来像是为了清晰起见删除了这个不相关的标记Javascript 使用jQuery.validate禁用表单字段时的ASP.NET核心视图模型,javascript,jquery,asp.net-core,jquery-validate,Javascript,Jquery,Asp.net Core,Jquery Validate,我有一个HTML表单,我希望当用户单击submit按钮时,该按钮和表单中主要的所有输入元素文本框都被禁用,以防止它们更改任何数据,或者再次单击该按钮。我在表单上使用jQuery.validate,而不使用不引人注目的插件 表单的标记看起来像是为了清晰起见删除了这个不相关的标记 <form method="post" asp-controller="Home" asp-action="Jim"> <div class="form-group row"> <
<form method="post" asp-controller="Home" asp-action="Jim">
<div class="form-group row">
<label for="Name">Your name</label>
<input type="text" id="UserName" name="UserName">
</div>
<div class="form-group row">
<label for="Email">Email</label>
<input type="text" id="Email" name="Email">
</div>
<div class="form-group row">
<div>
<button type="submit">Submit</button>
</div>
</div>
</form>
这就是页面上的所有JavaScript
这个很好用。但是,如果我在submitHandler函数中添加一行
submitHandler: function(form) {
$("form input").prop('disabled', true);
form.submit();
}
…然后在提交表单时,Request.form为空,因此我的任何数据都不会发送到服务器
它似乎与jQuery.validate有关,好像我完全用这个替换了JavaScript
$(function() {
$("form").submit(function(form) {
$("form input").prop('disabled', true);
});
});
…然后控件被禁用,我的数据正常通过。这似乎意味着我在jQuery.validate上做错了什么
有人能解释为什么我在使用jQuery.validate时禁用控件时数据无法通过吗?原因是禁用的输入未随表单一起提交。请参阅和 您应该使用readonly属性,而不是disabled属性。只读字段不能由用户编辑,但仍随表单一起提交
submitHandler: function (form) {
$("form input").prop('readonly', true);
form.submit();
}
ASP?你是否在使用不引人注目的验证插件?@Sparky不,我不是这很好,正是我想要的。我想使用readonly更有意义,尽管我仍然不明白为什么在没有使用jQuery.validate的情况下发布数据
submitHandler: function (form) {
$("form input").prop('readonly', true);
form.submit();
}