Pergunta

É necessário apresentar um formulário de apresentação dentro de uma div de uma ASP.NET página.Se houver um erro na submissão do formulário, tais como nome de usuário, não sendo exclusivo, o postback, em seguida, processa o ASP.NET página fora do lightbox.Como posso resolver esse problema?

Aqui está um fragmento de código do .página aspx que inclui o jquery:

<...>
<p>
    QunatumMotors is located in Detroit. Please use the link below to contact us.</p>
<p>
 <!--START CONTACT FORM OVERLAY-->

        <!-- first overlay. id attribute matches the selector -->
        <a href="**../informational/contactform.aspx"** rel="#overlay" style="text-decoration:none">
        &gt; Click here to contact us
        </a>

        <div class="simple_overlay" id="form_contact">
            <!-- overlayed element -->
            <div class="apple_overlay" id="overlay">
                <!-- the external content is loaded inside this tag -->
                <div class="contentWrap"></div>
            </div>
        </div>
 <!--END CONTACT FORM OVERLAY-->

<p>&nbsp;</p><p>&nbsp;</p>
<...>

contactform.aspx é apenas um padrão .página aspx com campos de formulário, o campo de validadores, rótulo para exibir erros (por exemplo,nome de usuário não exclusivo) e o botão enviar.Quando uma nova postagem ocorre em contactform.aspx, em seguida, (é claro) é prestado fora do lightbox.Como posso exibir a reposição de contactform.aspx dentro do jquery?Obrigado por sua ajuda!

Foi útil?

Solução

O visuallightbox conteúdo não é como outra guia ou janela:torna-se parte da página do host.

Em outras palavras, ele incorpora o HTML gerado pelo contactform.aspx na página do host do modelo de objeto de documento (DOM).Ativando o lightbox adiciona um formulário para a página do host que envia para a página de contato:

 <html><body>
     <!-- host page content here -->
     <!-- contact form content -->
     <form action="contactform.aspx">
         <!-- text boxes, buttons, etc. -->
     </form>
 </body></html>

Quando o usuário submete, seus problemas com o navegador de um novo pedido:um POST para contactform.aspx.Que a solicitação retorna o formulário de contato's HTML.

Existem várias maneiras que você pode contornar isso:

  • Usar ajax para realizar o update de forma assíncrona.(Você pode até mesmo ser capaz de fazer isso usando um UpdatePanel em contactform.aspx, mas eu não uso muito mais e não apesar de que, por meio).

  • Converter contactform.aspx em um controle (se você estiver usando-o em vários lugares) e incorporá-lo na página do host.

  • No final do formulário de contato do manipulador de envios, redirecionar para a página do host com um sinalizador que indica que a página imediatamente ativar o javascript.(Esta tem inúmeros problemas e parece muito frágil ...mas é plausível.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top