Dentro de mi aplicación web, estoy usando una validación personalizada para mis campos de formulario. Dentro del mismo formulario tengo dos botones: uno para enviar el formulario y el otro para cancelar / restablecer el formulario.
Principalmente utilizo Safari como mi navegador predeterminado. Ahora Safari 5 está fuera y, de repente, mi botón cancelar / reiniciar ya no funcionaba. Cada vez que presioné el botón de reinicio, el primer campo de mi formulario obtuvo el foco. Sin embargo, este es el mismo comportamiento que la validación de mi formulario personalizado. Al probarlo con otro navegador, todo funcionó bien. Tenía que ser un problema de Safari 5.
Cambié un poco en mi código Javascript y descubrí que la siguiente línea estaba causando el problema:
document.getElementById("somefield").required = true;
Para estar seguro de que ese sería realmente el problema, creé un escenario de prueba:
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<form id="someform">
<label>Name:</label> <input type="text" id="name" required="true" /><br/>
<label>Car:</label> <input type="text" id="car" required="true" /><br/>
<br/>
<input type="submit" id="btnsubmit" value="Submit!" />
</form>
</body>
</html>
Lo que esperaba que sucediera sucedió. El primer campo "nombre" obtuvo el foco automáticamente.
¿Alguien más tropezó con esto?