estoy tratando de realizar un formulario de envío básica, pero los siguientes somete al servidor dos veces en Chrome y Safari (pero se comporta como se espera en Firefox):formulario presentado dos veces en Chrome/Safari
<form id="create-deck-form" action="/decks/create" method="post">
<fieldset>
<legend>Create new deck</legend>
<label for="deck-name-field">Name</label>
<input id="deck-name-field" name="deck-name-field" type="text" value="" maxlength="140" />
<label for="tag-field">Tags</label>
<input id="tag-field" name="tag-field" type="text" value="" maxlength="140" />
<input class="add-button" type="submit" value="Create" />
</fieldset>
</form>
lo haría desea utilizar el atributo onsubmit
para realizar la validación en los campos antes del envío, pero donde sea que el valor devuelto sea true
, el formulario se envía dos veces.
he tratado de obligar a un controlador de jQuery para la forma, pero aquí también, donde no se impida el comportamiento por defecto, el formulario se envía dos veces, por ejemplo:
<script type="text/javascript">
$(document).ready(function() {
$("#create-deck-form").submit(function(event){
if($("#deck-name-field").val() == "") {
event.preventDefault();
alert("deck name required");
}
});
});
</script>
Aunque supongo que hay algo deslumbrante Obvio error aquí con un nuevo par de ojos, estoy profundamente confundido por qué el envío, con o sin validación, hace una publicación duplicada en el servidor en Chrome y Safari. Estaría agradecido por cualquier idea.
¿Hay algo más involucrado? ¿Hay controladores de "clic" que invoquen explícitamente "submit()" en el formulario, por ejemplo? – Pointy
Gracias, puntiagudo. No, está perfectamente limpio en este momento, sin otros manejadores atados a la forma o sus botones. – meg
¿Tiene una página de ejemplo o publica los contenidos de su página en algún lugar (todos HTML y JS), para que podamos echarle un vistazo? –