用JS表单显示/隐藏弹出窗口

时间:2014-06-05 15:47:20

标签: javascript jquery html css

我有一个表单,当用户点击send ..这些字段被发送到AJAX然后发送到php函数。 在此之后,打开一个弹出/ div。

我试图这样做,当用户点击网站上的某个地方时,这个div就是隐藏的。 但是没有工作,有什么想法吗?

HTML表单:

<form id="contactForm">
                <select id="contactFormSelect">
                  <option value="General" selected>General</option>
                  <option value="Support">Support</option>
                  <option value="Suggestions">Suggestions</option>
                  <option value="Jobs">Jobs</option>
                  <option value="Press">Press</option>
                  <option value="Founder">Founder</option>
                </select>
                <br />
                <input id="contactForm" type="text" name="name" placeholder="Your name"><br />
                <input id="contactForm" type="text" name="email" placeholder="Your email"><br />
                <input id="contactForm" type="text" name="subject" placeholder="Subject"><br />
                <textarea id="write" name="textarea" placeholder="Write here"></textarea><br />
                <input id="submitForm" type="button" value="SEND" onclick="contactRequest(this);">
            </form>

HTML Pop-up / Div:

<div id="contactSent">
<div id="backgroundOpacity"></div>
<div class="contactSent">
    <div id="contactSentFirst">
        Thank you!
    </div>
    <div id="contactSentSecond">
        Your message has been successfully sent. We will contact you very soon!
    </div>
</div>
<div id="buttonOK">
    Ok
</div>
</div>  

JS:

function contactRequest(elem)
{   
var postData = $('#contactForm').serialize();
    postData += "&textarea="+$('#write').val();
    postData += "&selectedOption="+$('#contactFormSelect').val();;

if($(elem).parent().children('#contactForm').val() != ''){      
    $.ajax(
    {
          url: "/newcontact/pedido-contato/",
          type: "POST",
          data: postData
    });

}
$('#contactSent').show();
}


$('body').click(function(){
$('#contactSent').hide();
});

2 个答案:

答案 0 :(得分:0)

您正在谈论的弹出式div元素听起来像引导模式元素。也许你应该看看这里:http://getbootstrap.com/javascript/#modals。模态非常容易实现,并且可以在网站上为其提供文档。希望这有帮助

答案 1 :(得分:0)

您的backgroundOpacity元素似乎位于body标签的顶部。尝试将事件分配给它。

$('#backgroundOpacity').click(function(){
    $('#contactSent').hide();
});