Could you explain me this?
Run this in Firefox: http://jsfiddle.net/eMa8y/24/
HTML:
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
</head>
<body>
<form>
<input type="text" placeholder="input" required />
<input type="text" placeholder="input" />
</form>
</body>
</html>
CSS:
input {
color:black;
}
[required] {
color:red;
}
SCRIPT:
$(document).ready(function () {
setTimeout(function () {
$("input").val("");
}, 3000);
});
Wait three seconds and the input gets a red border. Why? Is it a bug of Firefox?
Note that I use Firefox 18.0.2.
Thanks.
This is not a bug, this how Firefox highlights that that input needs a value.
required
is supported by Firefox: https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-requiredMore explanation here: http://www.html5tutorial.info/html5-required.php
Because your script loops through all inputs in order of founded in the DOM, your required input loses focus as there's an input behind it. Thus invoking Firefox validation, checking if that input has a value.
Internal Firefox style:
The HTML5 attribute
required
is obviously being interpreted by firefox to include a red border, here's an answer about removing itFirefox 4 Required input form RED border/outline
so just do:
fixed