Reputation: 691
Mobile Safari on iPad is supposed to be HTML5-compliant, but it seems that the required attribute doesn't work. Anyone know why, or have a decent workaround that doesn't require a ton of JavaScript?
My code
<input type=email class=input placeholder="Email" name="email" required>
Upvotes: 19
Views: 32251
Reputation: 161
This is a jQuery solution to the issue, it highlights the input fields that have failed in a pinky colour too.
$('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.
}
});
Upvotes: 16
Reputation: 11
You can do something before the submit action like this:
<form name="myForm" action="valid.html" onsubmit="checkValid()" method="post">
... ...
</form>
After pressing submit
button, checkValid()
is evoked before it actually submits. a return value of true
will continue the submit action.
Refer to this post for further explanation.
Upvotes: 1
Reputation: 1
If you use PHP, you can add a validation like this
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
}
}
You then add this function in php before your form.
Upvotes: -1