NOTÍCIA

Postagem de formulário em uma janela pop-up

Muita gente já me perguntou como fazer a postagem
de um formulário em uma janela pop-up… Eu mesmo já
precisei… Então, um dia conversando com um colega,
imaginei a seguinte rotina:

.  Abro uma nova janela,
com window.open, sem indicar página alguma, mas indicando
um "nome" para a TARGET dessa página (assim
como num FrameSet, isso pode ser utilizado para janelas
pop-up)…

.  Colocar esse "nome"
no atributo TARGET do Form…

.  Fazer a postagem.

Isso tudo só é possível devido ao metodo
window.open ter a opção de dar um "nome" à
nova janela. Veja a sintaxe de window.open:

window.open(URL,
Nome do Target, Opções)

Então para utilizar disso, fazemos assim:

.  Criamos um script que
crie a nova janela pop-up e dispare o submit do FORM:

<SCRIPT
LANGUAGE="Javascript↳JavaScript116 conteúdosJavaScript em 2020: O que esperarDev (Back & Front) · jan 2020Campos públicos e privados em classes JavaScript – O que vem por aí no ESNextDev (Back & Front) · abr 201929 anos de JavaScript!Dev (Back & Front) · jan 2025Ver tudo em Dev (Back & Front) →">
<!–
function
PostaDados(url) {
// Isto é apenas para abrir uma nova janela.
// Não precisa ter nada nela – é só pra
// target "Postagem" existir, pra poder
ser
// usada no FORM.
window.open("about:blank", "Postagem",
"resizable=yes, toolbar=no, status=yes, menubar=no,
scrollbars=yes, width=500, height=420, top=0, left=0");
NomeDoForm.submit();
}
//–>
</SCRIPT>

.  Colocamos o TARGET no
form:

<FORM NAME="NomeDoForm"
TARGET="Postagem" METHOD="POST"
ACTION="NomeDaPáginaDestipo.asp">

·       
E, ao invés
disto:

<INPUT TYPE="SUBMIT"
NAME="btnVotar" VALUE="Enviar Dados">

Usamos isto:

<INPUT TYPE="BUTTON"
NAME="btnVotar" VALUE="Enviar Dados"
OnClick="PostaDados();">

É simples, rápido e eficiente. :^)

Matérias especiais e reportagens conduzidas internamente pela Redação iMasters. Acompanhe no Twitter @imasters e no Instagram/Threads @portalimasters

Mais de Redação iMasters
Ver perfil →