模式中的表单输入未按要求显示

Kev*_* H. 4 html javascript forms required-field bootstrap-modal

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

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

我尝试将所有字段(在各自的 div 内)包装在一个元素中,并将它们分别包装在 a 中(如另一篇文章中所建议的),如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

我仔细检查了 Doctype 中的 HTML5 问题,但它检查出来了。我的结构很奇怪吗?

Tan*_*ice 6

两件事情。

  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
})
Run Code Online (Sandbox Code Playgroud)