Como dijo Nahom, excepto que pondría la llamada javascript:message()
directamente en la parte href (no es necesario entonces onclik).
Nota: dejar la llamada de JavaScript en el onClick tiene una ventaja: en el atributo href , se puede poner una URL para ir a si el usuario no tiene JavaScript habilitado. De esa forma, si tienen JS, se ejecuta su código. Si no lo hacen, van a algún lugar donde se les instruye para habilitarlo (tal vez).
Ahora, su rutina message
no solo debe hacer la pregunta, sino también usar la respuesta: si es positiva, debe llamar a submit() en el formulario para publicar el formulario. Puede pasar this
en la llamada para facilitar la obtención del formulario.
Personalmente, me gustaría ir por un botón (etiqueta de entrada como se muestra) en lugar de un simple enlace para hacer el proceso: utilizaría un paradigma más familiar para los usuarios.
[EDIT] Como yo prefiero para verificar las respuestas que doy, me escribió una prueba sencilla:
<script type="text/javascript" language="JavaScript">
function AskAndSubmit(t)
{
var answer = confirm("Are you sure you want to do this?");
if (answer)
{
t.form.submit();
}
}
</script>
<form action="Tests/Test.html" method="GET" name="subscriberAddForm">
<input type="hidden" name="locationId" value="2721"/>
<input type="text" name="text" value="3.1415926535897732384"/>
<input type="button" name="Confirm" value="Submit this form" onclick="AskAndSubmit(this)"/>
</form>
Sí, la sumisión que se acaba de cargar la página aquí ... Probado sólo en FF3.
[EDIT] sugerencia seguido en los comentarios ... :-)
"t.parentNode" funciona para este ejemplo, pero es frágil porque contiene una suposición. Mejor es "t.form". – Tomalak
Tomalak es correcto, t.form sería mejor. – scunliffe