如何跨浏览器检测带有“必需”的输入字段? jQuery 中的属性?

发布于 2024-10-17 14:02:10 字数 684 浏览 5 评论 0原文

我在表单字段上的布尔 required 属性上遇到了一个轻微的验证问题。

我正在这样标记我的字段:

<label for="email">Email Address:</label>
<input value="" type="email" name="email" id="email" required />

但是由于检测问题,尝试使用 jQuery 查找所有必需字段并将它们添加到数组中似乎存在问题。

以下仅适用于 Firefox (Gecko) $(':input[required=""]') 但在 Webkit(Safari、Chrome)中不返回任何内容。

另一方面,如果我运行 $(':input[required]')$(':input[required="true"]'),但是当它通过 Gecko 运行时,它不会返回所需的字段。

我在这里做错了什么?最后我检查了输入属性只是 required 而不是 required="required" 也不是 required="true"

有没有更好的方法使用 javascript/jQuery 检测所有必填字段?

I am running into a slight validation issue with the Boolean required attribute on form fields.

I am marking up my fields as such:

<label for="email">Email Address:</label>
<input value="" type="email" name="email" id="email" required />

But trying to find all required fields using jQuery and adding them to an array seems problematic due to detection issues.

The following only works in Firefox (Gecko) $(':input[required=""]') but returns nothing in Webkit (Safari, Chrome).

Webkit on the other hand return all required fields if I run $(':input[required]') or $(':input[required="true"]'), but when this runs through Gecko it doesn't return the required fields.

What am I doing wrong here? Last I checked the input attribute was simply required and neither required="required" nor required="true".

Is there a better way of detecting all the required fields using javascript/jQuery?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

如歌彻婉言 2024-10-24 14:02:10

这可能是一个糟糕的解决方法,但是您尝试过多重选择器吗?

$(':input[required=""],:input[required]')

It may be a bad workaround, but have your tried a multiple selector?

$(':input[required=""],:input[required]')
情场扛把子 2024-10-24 14:02:10

干得好。这将输出一个包含所有必填字段的数组。

<input value="" type="email" name="email" id="email" required/>
<input value="" type="email" name="email1" id="email1"  required/>
<input value="" type="email" name="email2" id="email2"/>

<script type="text/javascript">
var x = $('input[required]').get();
console.log(x); // x will contain an array of required inputs [input#email, input#email1]
</script>

Here you go. This will output an array with all required fields.

<input value="" type="email" name="email" id="email" required/>
<input value="" type="email" name="email1" id="email1"  required/>
<input value="" type="email" name="email2" id="email2"/>

<script type="text/javascript">
var x = $('input[required]').get();
console.log(x); // x will contain an array of required inputs [input#email, input#email1]
</script>
不羁少年 2024-10-24 14:02:10

使用 bootstrap 3,您可以执行以下操作:

$('input[required]')
    .closest(".form-group")
    .children("label")
    .append(" <i class='fa fa-asterisk'></i>");

with bootstrap 3, you can do:

$('input[required]')
    .closest(".form-group")
    .children("label")
    .append(" <i class='fa fa-asterisk'></i>");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文