enviar un formulario en una nueva pestaña

143

Me gustaría (solo probar algunas funciones, después de evitar este comportamiento) para cargar la página llamada por submit en una nueva pestaña: ¿es posible?

markzzz
fuente

Respuestas:

305
<form target="_blank" [....]

enviará el formulario en una nueva pestaña ... No estoy seguro de si esto es lo que está buscando, explique mejor ...

Strae
fuente
1
¡Oh si! ¡eso es lo que quiero decir! Lo siento, mi inglés es muy malo. Edité el tema, la esperanza es más completa ahora :)
markzzz
1
la jqueryetiqueta me confundió, pensé que estabas hablando de una solicitud de ajax;)
Strae
44
@nalply: ¿En serio? La mayoría de los navegadores SÍ usan pestañas cada vez que un sitio web les sugiere que usen una nueva ventana ( target="_blank"). Y eso es bueno porque casi nadie quiere que un sitio web abra una nueva ventana y no creo que este valor predeterminado cambie nunca, ya que casi todos los sitios web usan _blankhoy en día.
ThiefMaster
Eso está barriendo un detalle importante debajo de la alfombra. _blankno abre una nueva pestaña Está abriendo una nueva ventana , que en su mayoría (¡pero no siempre!) Predeterminada para abrir una nueva pestaña . Depende de la configuración del navegador. Vea esta respuesta muy votada: stackoverflow.com/a/4907854/220060
finalmente
@nalply Puedo estar de acuerdo con usted en que ese comando abre el enlace en una nueva ventana , pero tiene que estar de acuerdo conmigo en que todo el navegador conocido hoy abre nuevas ventanas como pestañas , por lo que el resultado es el mismo. Si el usuario configuró el navegador manualmente para abrir una nueva ventana, entonces es una elección que hizo y no podemos hacer nada para evitarlo.
Strae
23

Tengo un botón [enviar] y [vista previa], quiero que la vista previa muestre la vista de impresión de los datos del formulario enviado, sin persistir en la base de datos. Por lo tanto, quiero que [vista previa] se abra en una nueva pestaña y enviar para enviar los datos en la misma ventana / pestaña.

<button type="submit" id="liquidacion_save" name="liquidacion[save]" onclick="$('form').attr('target', '');">Save</button></div>    <div>
<button type="submit" id="liquidacion_Previsualizar" name="liquidacion[Previsualizar]" onclick="$('form').attr('target', '_blank');">Preview</button></div>  
juanmf
fuente
16

También es posible usar el nuevo atributo de botón llamado formtargetque se introdujo con HTML5.

<form>
  <input type="submit" formtarget="_blank"/>
</form>
Arbol Dragon
fuente
15

Añadir target="_blank"a la <form>etiqueta.

ThiefMaster
fuente
8

Dado que tienes este jQuery etiquetado, ¿supondré que quieres que algo se pegue en tu función de éxito?

success: function(data){
    window.open('http://www.mysite.com/', '_blank');
}
SickHippie
fuente
2

Esto también funcionará muy bien, puedes hacer algo más mientras un nuevo controlador de pestañas lo envía.

<form target="_blank">
    <a href="#">Submit</a>
</form>

<script>
    $('a').click(function () {
        // do something you want ...

        $('form').submit();
    });
</script>
Enlace
fuente
1

Las opciones de su navegador deben estar configuradas para abrir nuevas ventanas en una nueva pestaña; de lo contrario, se abrirá una nueva ventana del navegador.

ArtieJ
fuente