2

我已经阅读了一些相关文章,但没有解决我自己的让表单字段按要求出现的问题。也许问题出在外面,但我想分享一下,以防它突出一个独特的案例。

这是一个可在此处完整查看的课程分配,它允许用户将新火车添加到时间表并更新 Firebase 数据库。为此,我使用 Bootstrap 作为样式,还使用了一个模态弹出窗口,其中包含创建新火车的表单。一切正常,除了我无法使输入字段成为必需或阻止“提交”按钮。

我尝试将所有字段(在它们各自的 div 中)包装在一个元素中,以及将它们各自包装在一个(如另一篇文章中所建议的那样)中,如下所示:

<div class="modal-body">
  <div class="panel panel-info">
    <div class="panel-body">
      <div class="form-group">
        <form>
          <label for="train_name">Train Name:</label> <input class="form-control" id="train_name" required="" type="text">
        </form>
      </div>
      <div class="form-group">
        <form>
          <label for="origin">Origin:</label> <input class="form-control" id="origin" required="" type="text">
        </form>
      </div>
      <div class="form-group">
        <form>
          <label for="destination">Destination:</label> <input class="form-control" id="destination" required="" type="text">
        </form>
      </div>
    </div>
  </div>
<div class="modal-footer">
  <button class="btn btn-primary" id="submit" type="submit" value="submit">Submit</button>
</div>
</div>

我仔细检查了 Doctype 的 HTML5 问题,但它检查出来了。我的结构是不是很古怪?

4

2 回答 2

3

两件事情。

  1. required属性仅在使用submit事件侦听器时触发。看起来您当前正在使用click.

  2. 您将每个包装input在它自己的表单标签中。您应该有一个包含所有输入的表单标签

例子:

<div class="panel-body">
  <form id="my-form">
    <div class="form-group">
     <label for="train_name">Train Name:</label> <input class="form-control" id="train_name" required="" type="text">
    </div>
    <div class="form-group">
      <label for="origin">Origin:</label> <input class="form-control" id="origin" required="" type="text">
    </div>
    <div class="form-group">
      <label for="destination">Destination:</label> <input class="form-control" id="destination" required="" type="text">
    </div>
    <button class="btn btn-primary" id="submit" type="submit">Submit</button>
  </form>
</div>


$("#my-form").on("submit", function (e) {
  //do your form submission logic here
})
于 2018-09-26T21:31:38.757 回答
2

我关于required属性不起作用的错误是在我处理提交按钮时。1. 它位于<form>它所属的标签之外,并且 2. 我的 Javascript 也在监听on("click" . . .而不是on("submit" . . .

进行这 2 项更改修复了此问题的功能。感谢Tanner Eustice的帮助!

于 2018-09-26T21:54:30.180 回答