IPad/iPhone上的Html5表单元素"必需"不起作用
-
11-12-2019 - |
题
iPad safari应该是html5兼容的,但似乎所需的元素不起作用。任何人都知道为什么,或者有一个体面的解决方法,不需要大量的JavaScript?
我的代码
<input type=email class=input placeholder="Email" name="email" required>
解决方案
它尚未在iOS中支持:何时可以使用:所需。
其他提示
这是一个问题的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.
}
});
. 由于IOS 10.3支持此属性。电子邮件类型还需要编写@符号等...
如果您已经使用jQuery,Modernizr和Yepnope,这是处理它的一种方法。如果你不是这样,这将增加大量额外的JavaScript。
我想你可以在提交动作之前做一些事情,如下所示
<form name="myForm" action="valid.html" onsubmit="checkValid()" method="post">
... ...
</form>
按压后 submit
按钮, checkValid()
在它真正提交之前被唤起。返回值为 true
将继续提交操作。
参考 这篇文章 作进一步说明。:)
如果使用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中添加此函数。
不隶属于 StackOverflow