HTML5需要修复IE和Safari

时间:2015-08-14 02:48:41

标签: html5 forms validation required

尝试在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;
    }
  });
 }
}); 

1 个答案:

答案 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
});




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