我有一个带有几个文本字段的自定义表单 . 所有这些元素都设置了 tabindex
值 . 但是一旦我放置了新的recaptcha就无法访问该复选框,因为它将tabindex设置为默认值0.有没有办法为新的验证码复选框设置选项卡索引?
以下代码演示了此问题:
<script src="https://www.google.com/recaptcha/api.js"></script>
<form action="" method="POST">
<input type="text" name="username" tabindex="1" autofocus>
<input type="password" name="password" tabindex="2">
<div class="g-recaptcha" data-sitekey="[SITE KEY]"></div>
<input type="submit" value="Login" tabindex="4">
</form>
注意 <script>
来自 <head>
.
在表格中进行选项卡时,顺序如下:
-
用户名
-
密码
-
提交按钮
-
验证码
所需的顺序如下:
-
用户名
-
密码
-
验证码
-
提交按钮
2 回答
我昨天花了相当多的时间调试reCAPTCHA 2 API,寻找未记录的功能,而且我有理由相信Google没有提供API来执行此操作 .
但是,您需要做的就是在生成的
iframe
元素上设置tabindex
属性 . Google默认将其设置为0
,但我们没有理由无法更改它 .iframe
不会立即生成,因此您需要等待它首先渲染 .另外,如果我们可以在
.g-recaptcha
元素的.g-recaptcha
元素中指定tabindex
,那就太好了 .这是一个很好的小片段,它会循环
.g-recaptcha
,为load
事件添加iframe
的事件监听器(使用捕获阶段,因为事件不会冒泡),并将iframe
的tabIndex
属性设置为data-attribute
属性的值 . 只需在您网页的页脚中包含此脚本,或在文档准备就绪时运行它 .在HTML中,包含所需的
data-tabindex
值 .在新版本的recaptcha中,您可以使用data-tabindex . https://developers.google.com/recaptcha/docs/display#render_param这样的事情:
或者这个: