尝试在IE< 11和Safari上实现'required'属性。
这是我用来尝试实现此目的的脚本,但它无效。如有必要,寻找反馈或耳光。 form id = "sendit"
$("#sendit").submit(function() {
if (!attributeSupported("required") || ($.browser.safari)) {
$("#sendit [required]").each(function(index) {
if (!$(this).val()) {
alert("Please fill all required fields.");
return false;
}
});
}
});
答案 0 :(得分:1)
这是一个老帖子,但我发现它没有得到回答。你的代码的问题是你有"返回false"在"每个"功能。这突破了每个循环,但没有停止表单提交。我会删除浏览器检查,因为任何支持html5表单验证的浏览器都会通过测试。所以你应该能够将代码更改为:
$("#sendit").submit(function() {
var valid = true;
$("#sendit [required]").each(function(index) {
if (!$(this).val()) {
alert("Please fill all required fields.");
valid = false
$(this).focus();
return false;
}
});
if (!valid) {
return false;
}
// anything else that need to be done on submit
});

请注意,我添加了一行来聚焦表单字段。