如何在jQuery中使用'required'属性跨浏览器检测输入字段?

时间:2011-02-12 02:48:52

标签: jquery forms html5 attributes required

我遇到了表单字段中布尔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"]'),Webkit将返回所有必填字段,但是当它通过Gecko运行时,它不会返回必需的字段。

我在这里做错了什么?最后,我检查了输入属性只是required,而required="required"required="true"都没有。

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:3)

你走了。这将输出一个包含所有必填字段的数组。

<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>

答案 2 :(得分:0)

使用bootstrap 3,你可以这样做:

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