当前位置: 首页 > 知识库问答 >
问题:

Google chrome使用jQuery选项卡“无效表单控件不可聚焦”

闽阳州
2023-03-14

我已经创建了一个表单,它使用jQuery被拆分为许多“选项卡”;以及在各个选项卡中找到的字段。

表单中的所有字段都有相应的检查,有些字段是必需的,有些字段必须具有最小值,等等。

但是,当我尝试提交一个在字段中包含无效值的表单时,如果这些字段位于不同于当前选项卡的选项卡下,我会在控制台上从GoogleChrome得到一个错误:

无效的表单控件不可聚焦

但用户看不到任何效果,也找不到错误的字段,因为浏览器未突出显示该字段。

我已经阅读了以下问题的答案:

  • 名称为“”的无效表单控件不可聚焦
  • “无效表单控件”仅在Google Chrome中出现
  • 名称为“”的无效表单控件不可聚焦。没有任何必需或隐藏的输入

但是,他们都说要给字段指定正确的名称(已经完成),或者删除“必需属性”(不能这样做,这是有原因的!)。

我想强调的是,我也在做服务器端验证,所以这不是这个问题的主题。

如何在表单中保留HTML5验证,同时避免该错误?

编辑:

在这里,您可以找到我所描述的示例,即使它比实际表单简单得多,如果您将其加载到GoogleChrome并立即提交表单,您将在控制台中看到错误。

<form id="form_tabs" name="form_tabs" method="post" action="">
  <div id="tabs" class="ui-tabs">
    <ul>
      <li><a rel="tabs" href="#tab1">FIRST TAB</a></li>
      <li><a rel="tabs" href="#tab2">SECOND TAB</a></li>
    </ul>

    <div id="tab1" class="ui-tabs-hide">
      <input type="text" name="text1" id="text1" value="" placeholder="I am NOT required"/>
    </div>

    <div id="tab2" class="ui-tabs-hide">
      <input type="text" name="text2" id="text2" value="" placeholder="I REALLY am required!" required="required"/>
    </div>
  </div>

  <br/>
  <button type="submit" value="submit">
    SEND FORM
  </button>
</form>

共有3个答案

岳和泽
2023-03-14

我也遇到了同样的问题,用同样的方法解决了

$("form input").on("invalid", function() {
    $(this).parents('.parentdiv').find('.div').show()
});

这将弹出带有无效数据的div并显示消息

裴韬
2023-03-14

浏览器不知道如何显示具有无效控件的选项卡。所以你需要手动处理。

document.querySelector('#form_tabs').addEventListener('invalid', function(event) {
    // Check event.target, and show its owner tab.  e.g.
    event.target.parentNode.classList.remove('ui-tabs-hide');
}, true);
白翔
2023-03-14

这似乎有点像Villiana的回答:

//when submitted if there was an issue
 $("form input").on("invalid", function() {
        //find tab id           
        var element = $(this).closest('.ui-tabs-panel').index();
         //goto tab id
        $('#yourTabs').tabs('option', 'active', element)
 });
 类似资料:
  • 我创建了一个表单,它使用jQuery拆分为许多“选项卡”;以及在各个选项卡中找到的字段。 表单中的所有字段都已检查到位,有些是必填字段,有些必须有最小值,等等。 null 这里你可以找到我所描述的一个例子,尽管它比实际的表单要简单得多,但如果你将它加载到Google Chrome中并立即提交表单,你就会在控制台中看到错误。

  • 问题内容: 我的网站上有一个严重的问题。在Google Chrome浏览器中,某些客户无法进入我的付款页面。尝试提交表单时出现此错误: 这来自JavaScript控制台。 我读到问题可能是由于隐藏字段具有必填属性。现在的问题是,我们使用的是.net Webforms必需的字段验证器,而不是html5必需的属性。 出现此错误的似乎是随机的。有谁知道解决方案吗? 问题答案: 如果表单字段验证失败,则在

  • 名为“additional\u here\u about\u other\u field”的无效表单控件不可聚焦。此代码用于具有四个下拉列表的选择字段。需要两个选项:和)。选择必填字段时,必须在另一个文本字段中输入其他数据,该字段将显示/取消隐藏。当您选择一个必需的选项,然后切换到一个必需或非必需的选项并尝试提交表单时,您会得到“不可聚焦”错误。似乎当您选择一个必填字段,然后切换到另一个字段时,以

  • 我使用TinyMCE 4,这是我的代码: 我有一个问题。当我点击"提交"按钮,表单不发送,但在Web浏览器控制台我有错误:"一个无效的表单控件与名称='内容'是不可聚焦的。" 你能帮我吗?我怎样才能简单地解决这个问题?谢谢你的建议。

  • 在谷歌Chrome中,一些客户无法进入我的支付页面。当尝试提交表单时,我遇到以下错误: name=''的无效窗体控件不可聚焦。 这是来自JavaScript控制台的。 我读到这个问题可能是由于隐藏的字段具有必需的属性。现在的问题是,我们使用的是.NET webforms required字段验证器,而不是html5 required属性。 谁得到这个错误似乎是随机的。有没有人知道解决这个问题的办法

  • 本文向大家介绍jQuery简单实现tab选项卡切换效果,包括了jQuery简单实现tab选项卡切换效果的使用技巧和注意事项,需要的朋友参考一下 抽空把公司项目上用的tab效果封装了一下,实在是需要用的地方太多了~~~ 效果图: 代码: 以上就是本文的全部内容,希望能给大家一个参考,也希望大家多多支持呐喊教程。