Html5表单元素“;“必需”;在iPad/iPhone上没有';行不通

Html5表单元素“;“必需”;在iPad/iPhone上没有';行不通,html,forms,mobile-safari,required,html-validation,Html,Forms,Mobile Safari,Required,Html Validation,iPadSafari应该是兼容html5的,但所需的元素似乎不起作用。有人知道为什么,或者有一个不需要大量JavaScript的体面解决方案吗 我的代码 <input type=email class=input placeholder="Email" name="email" required> iOS还不支持它:。如果您已经在使用jQuery、Modernizer和yepnope,这是一种解决方法。如果您没有,那么这将添加大量额外的javascript 这是一个jQuery解

iPadSafari应该是兼容html5的,但所需的元素似乎不起作用。有人知道为什么,或者有一个不需要大量JavaScript的体面解决方案吗

我的代码

<input type=email class=input placeholder="Email" name="email" required>


iOS还不支持它:。

如果您已经在使用jQuery、Modernizer和yepnope,这是一种解决方法。如果您没有,那么这将添加大量额外的javascript


这是一个jQuery解决方案,它以粉红色突出显示失败的输入字段

$('form').submit(function(){
    var required = $('[required="true"]'); // change to [required] if not using true option as part of the attribute as it is not really needed.
    var error = false;

    for(var i = 0; i <= (required.length - 1);i++)
    {
        if(required[i].value == '') // tests that each required value does not equal blank, you could put in more stringent checks here if you wish.
        {
            required[i].style.backgroundColor = 'rgb(255,155,155)';
            error = true; // if any inputs fail validation then the error variable will be set to true;     
        }
    }

    if(error) // if error is true;
    {
        return false; // stop the form from being submitted.
    }
});
$('form')。提交(函数(){
var required=$('[required=“true”]');//如果不使用true选项作为属性的一部分,则更改为[required],因为它不是真正需要的。
var错误=错误;

对于(var i=0;i我想您可以在提交操作之前执行类似的操作


... ...
按下
submit
按钮后,
checkValid()
在实际提交之前被调用。返回值
true
将继续提交操作


请参阅以获取进一步的解释。

由于iOS 10.3支持此Atributes。此外,电子邮件类型需要写入@符号等…

如果使用PHP,可以添加如下验证

function validation(){

  if(isset($_POST['submit'])){
  $email = $_POST['email'];

     if(empty($email)){
        echo $error = "Your email cannot be empty";

      } else {
        return true; //or do something next here
     }
   }

然后在表单前添加php函数。

你能试试
吗?你是不是用
必需的
而不是
必需的
?真是太遗憾了!从这篇文章开始,已经3年6个月零4天了自从被问到这一点,苹果仍然没有实施。这种傲慢令人难以置信。Applesoft 2.0…2016年2月,苹果仍然很差劲。我刚刚看到我收到了“著名问题”这个问题的徽章被浏览了10000多次。苹果仍然不支持iOS或OSX上的html5表单验证。这几乎令人难以置信。2016年9月,iPhone 7发布,iOS 10发布,但仍然无法工作。干得好,苹果!如链接所示,Safari 10.1和iOS 10.3(均于2017年3月27日发布)支持required属性。您的解决方案很棒。我对其进行了自定义,以便在页面上有多个表单的情况下仅验证当前表单,方法是修改第二行:
code
var required=$(“[required=”true“]”,这)
code
这将在服务器端完成。浏览器内置了
required
属性,防止浏览器发送不完整的内容。换句话说,这个想法是为了防止PHP(在您的情况下)需要验证(即使您实际上应该这样做)。