Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery.validate禁用表单字段时的ASP.NET核心视图模型_Javascript_Jquery_Asp.net Core_Jquery Validate - Fatal编程技术网

Javascript 使用jQuery.validate禁用表单字段时的ASP.NET核心视图模型

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"> <

我有一个HTML表单,我希望当用户单击submit按钮时,该按钮和表单中主要的所有输入元素文本框都被禁用,以防止它们更改任何数据,或者再次单击该按钮。我在表单上使用jQuery.validate,而不使用不引人注目的插件

表单的标记看起来像是为了清晰起见删除了这个不相关的标记

<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();
}