El tutorial o código que verás en este artículo es la resolución más eficiente y efectiva que encontramos a tus dudas o dilema.
Solución:
No podrá hacer esto fácilmente con javascript simple. Cuando publica un formulario, las entradas del formulario se envían al servidor y su página se actualiza; los datos se manejan en el lado del servidor. Eso es el submit()
La función en realidad no devuelve nada, solo envía los datos del formulario al servidor.
Si realmente desea obtener la respuesta en Javascript (sin actualizar la página), necesitará usar AJAX, y cuando comience a hablar sobre el uso de AJAX, deberá necesitar para usar una biblioteca. jQuery es, con mucho, el más popular y mi favorito personal. Hay un gran complemento para jQuery llamado Form que hará exactamente lo que parece que quieres.
Así es como usaría jQuery y ese complemento:
$('#myForm')
.ajaxForm(
url : 'myscript.php', // or whatever
dataType : 'json',
success : function (response)
alert("The server says: " + response);
)
;
Una alternativa de Ajax es establecer un invisible como destino de su formulario y lea el contenido de ese
en su
onload
manipulador. Pero, ¿por qué molestarse cuando está el Ajax?
Nota: Solo quería mencionar esta alternativa ya que algunas de las respuestas afirman que es imposible para lograr esto sin Ajax.
La forma Javascript no jQuery vanilla, extraída del comentario de 12me21:
var xhr = new XMLHttpRequest();
xhr.open("POST", "/your/url/name.php");
xhr.onload = function(event)
alert("Success, server responded with: " + event.target.response); // raw response
;
// or onerror, onabort
var formData = new FormData(document.getElementById("myForm"));
xhr.send(formData);
Para POST
El tipo de contenido predeterminado es “aplicación/x-www-form-urlencoded”, que coincide con lo que enviamos en el fragmento anterior. Si desea enviar “otras cosas” o modificarlo de alguna manera, vea aquí algunos detalles esenciales.
Sección de Reseñas y Valoraciones
Recuerda algo, que te brindamos la opción de parafrasear tu experiencia si topaste tu contratiempo justo a tiempo.