javascript - 使用 JQuery 提交简单表单并对必填字段进行限制?

标签 javascript jquery html forms

使用 $(this).closest('form').submit(); 对于必填字段来说效果不太好,因为无论表单内容如何,​​它都会强制提交。有没有一种简单的方法可以在提交表单之前确认特定字段已填写?

<form action="./submit.php" method="post">
    <input type="text" name="foo" required="required"/> <br/>
    <input type="text" name="bar" required="required"/> <br/>
    <input type="text" name="baz" required="required"/> <br/>
    <div class="box" onclick="$(this).closest('form').submit();">Submit</div>
</form>

我最好的想法是使用 .attr('required','required') 收集所有表单元素,迭代它们并确认某些值存在,但是有没有更好/更短的方法?

最佳答案

您可以使用checkValidity方法检查

var $form = $(this).closest('form');
if (!$form[0].checkValidity || $form[0].checkValidity()) {
    $form.submit();
}

$('a').click(function(e) {
  e.preventDefault();
  var $form = $(this).closest('form');
  if (!$form[0].checkValidity || $form[0].checkValidity()) {
    $form.submit();
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
  <input name="x" required />
  <br />
  <input name="y" required />
  <br />
  <input name="z" />
  <br />
  <a href="#">Test</a>
</form>

关于javascript - 使用 JQuery 提交简单表单并对必填字段进行限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32322904/

相关文章:

javascript - 防止过度定位元素中的事件

javascript - ajax 回调 window.location 请求中止

javascript - 组合两个 Javascript 对象

jquery - 如何在 onClick ="functionname()"之前执行 JQuery validate() ;

html - 我怎样才能让这个内容居中?

javascript - 找出文本区域中的行是否为空

javascript - 在 Controller 中从指令获取值到 $scope

javascript - jquery this 里面的 jquery every

html - Bootstrap 推/拉问题

html - 带元素前缀的高级元素选择器在 Chrome 中不起作用