基于验证禁用表单提交

use*_*169 4 asp.net-mvc asp.net-core

我正在学习 ASP.NET Core (v 2.0)。有一个带有几个输入文本框和一个提交按钮的表单。我只想允许用户提交有效的表单,因此当表单不完整时,我希望禁用提交按钮。

有没有办法使用 ASP.NET Core模型验证轻松做到这一点?

谢谢。

Joe*_*son 6

ASP.NET MVC 中没有任何内置功能可以自动为您执行此操作。您询问的 UI 模式需要 JavaScript 编码。

您可以下载并引用一个验证库,例如jQuery Validation Plugin。然后在您的页面中编写一些 JavaScript 以检查表单在每个表单输入模糊时是否有效$("#myForm").valid(),并仅在表单有效时启用提交按钮。

有关示例,请参阅附加的代码段。

var $form = $("#myform");
var $submitbutton = $("#submitbutton");

$form.on("blur", "input", () => {
  if ($form.valid()) {
    $submitbutton.removeAttr("disabled");   
  } else {
    $submitbutton.attr("disabled", "disabled");
  }
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.17.0/jquery.validate.min.js"></script>

<form id="myform">
  <input type="text" name="text1" required />
  <br/>
  <input type="text" name="text2" required />
  <br/>
  <button type="submit" id="submitbutton" disabled>Submit Enabled When Valid</button>
</form>
Run Code Online (Sandbox Code Playgroud)