iPad / iPhone上的“必需”Html5表单元素不起作用

时间:2012-05-19 10:29:16

标签: html5 forms mobile-safari required html-validation

iPad safari应该符合html5标准,但似乎所需的元素不起作用。任何人都知道为什么,或者有一个不需要大量JavaScript的体面解决方案?

我的代码

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

5 个答案:

答案 0 :(得分:25)

iOS尚未支持:when can I use: required

答案 1 :(得分:16)

这是该问题的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.
    }
});

答案 2 :(得分:2)

从iOS 10.3开始,支持这些属性。电子邮件类型也需要写@符号等等......

答案 3 :(得分:1)

如果您已经在使用jQuery,Modernizr和yepnope,这是一种处理它的方法。如果你不是那么这会增加很多额外的javascript。

My solution

答案 4 :(得分:1)

我想你可以在提交行动之前做点什么

<form name="myForm" action="valid.html" onsubmit="checkValid()" method="post">
  ... ...
</form>

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

请参阅this post以获取进一步说明。:)