2

我正在使用以下脚本来更改元素的 HTML5required属性。input我想知道是否有办法修改此脚本以使其也适用于 Safari 浏览器,因为 Safari 不支持此属性。

这是脚本:

$(document).ready(function() {
    $_POST = array();
    var elements = document.getElementsByTagName("INPUT");
    for (var i = 0; i < elements.length; i++) {
        elements[i].oninvalid = function(e) {
            e.target.setCustomValidity("");
            if (!e.target.validity.valid) {
                e.target.setCustomValidity("This field can't be blank");

            }
        };
        elements[i].oninput = function(e) {
            e.target.setCustomValidity("");

        };
    }
})
4

3 回答 3

4

你也可以这样做:

var valid = true;
$('input[required]').each(function() {
    if (this.value == '') {
        // Alert or message to let them know
        valid = false;
        return false; // stop on first error, or remove this and it'll go through all of them.
    }
});

if (valid === false) {
    return false;
}
于 2014-10-21T00:39:10.060 回答
2

在此处查看此页面。它包含一个 hacky 解决方案,应该添加所需的功能

http://www.html5rocks.com/en/tutorials/forms/constraintvalidation/#toc-safari

于 2013-10-27T02:41:45.323 回答
0

您将需要在表单提交时使用事件处理程序自己运行检查。在该处理程序中,您自己运行检查,如果检查失败,则显示任何错误消息并使用preventDefaultor阻止提交return false

可以在此处找到一个示例,但正如它所指出的,如果您使用 checkValidity 作为检查表单的方法,则需要小心。

于 2013-10-27T02:43:43.067 回答