我有一个表单,当用户点击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();
});
答案 0 :(得分:0)
您正在谈论的弹出式div元素听起来像引导模式元素。也许你应该看看这里:http://getbootstrap.com/javascript/#modals。模态非常容易实现,并且可以在网站上为其提供文档。希望这有帮助
答案 1 :(得分:0)
您的backgroundOpacity元素似乎位于body标签的顶部。尝试将事件分配给它。
$('#backgroundOpacity').click(function(){
$('#contactSent').hide();
});