0

required有没有办法用具有该属性的表单字段填充 JavaScript 数组?

我尝试了这段代码......

var requiredfields = new Array();

function getInputs() {
    var fields = document.getElementsByTagName('input');
    for (var i = 0; i < fields.length; i++) {
        alert('I am input field ' + i);
        //var required = fields[i].getAttribute('required');
        if (fields[i].getAttribute('required')) {
            fields[i].style.border = '1px solid #ff0000';
            requiredfields.push(fields[i]);
        }
    }
}

不幸的是,它甚至没有设置边框或显示警报。我什至不确定是否getElementsByTagName正确返回数据。

我的代码很可能是古怪的。嘿嘿嘿……

4

2 回答 2

1

在现代浏览器中,您可以这样做:

var required = document.querySelectorAll('input[required]');

Array.prototype.forEach.call(required, function(element){
  element.style.border = '1px solid #ff0000';
});

或者只是在样式表中使用 CSS 规则:

input[required] {
  border: 1px solid #ff0000;
}
于 2013-07-11T20:37:56.857 回答
1

您可以使用此脚本:

http://jsfiddle.net/2u3kZ/

var requiredfields = new Array();

var fields = document.getElementsByTagName('input');
for (var i = 0; i < fields.length; i++) {
    if (fields[i].getAttribute("required") != null) {
        fields[i].style.border = '1px solid #ff0000';
        requiredfields.push(fields[i]);
    }
}
于 2013-07-11T20:48:25.433 回答