Bootstrap 必填字段不适用于引导标记字段

3df52oht  于 2022-12-16  发布在  Bootstrap
关注(0)|答案(1)|浏览(136)

我有一个问题,浏览器不打开一个空的必填输入字段的弹出窗口。

<input type="text" class="form-control" id="tokenfield" value="" required/>

尝试在互联网上搜索,但找不到解决方案。
下面是该问题的一个工作示例:http://jsfiddle.net/rns3hang/182/
如果我从这个例子中删除了所有的js,那么浏览器默认会打开“请填写这个字段”的弹出窗口。
有什么办法解决这个问题吗?

thigvfpy

thigvfpy1#

有趣的问题。如果你试着调试,你会发现你的表单提交处理程序根本没有被调用。这是因为,在幕后,你的 tokenfield 实际上是在构建自己的输入:

<div class="tokenfield form-control">
  <input type="text" class="form-control" id="tokenfield" value="" required="" tabindex="-1" style="position: absolute;left: -10000px;">
  <input type="text" tabindex="-1" style="position: absolute; left: -10000px;"><span role="status" aria-live="polite" class="ui-helper-hidden-accessible">9 results are available, use up and down arrow keys to navigate.</span>
  <input type="text" class="token-input ui-autocomplete-input" autocomplete="off" placeholder="" id="tokenfield-tokenfield"
  tabindex="0" style="min-width: 60px; width: 640px;">
</div>

正如您可能看到的,您最初输入的#tokenfield向左移动了10k像素,这样您就看不到它了。因此,当您单击Submit时,HTML5验证确实会发生,但在您不再使用的元素上。(只需尝试删除#tokeninput上所有额外添加的CSS即可)
至于解决方案,如果您确实需要坚持使用tokenfield,请尝试在构建自定义表单提交逻辑时使用它自己的事件和验证。

相关问题