[英]show confirmation modal dialog after form submission
我有一个表单,单击提交按钮后我需要它做两件事:
我的表格:
<form class="quote-form" method="post" action="acknowledge.php">
<div class="form-row">
<label>
<span>Full Name</span>
<input type="text" name="name">
</label>
</div>
<div class="form-row">
<label>
<span>Email</span>
<input type="email" name="email">
</label>
</div>
<div class="form-row">
<label>
<span>Phone</span>
<input type="number" name="phone">
</label>
</div>
<div class="form-row">
<label>
<span>Nature of Enquiry</span>
<select name="enquiry">
<option selected>General Enquiry</option>
<option>Logo Design</option>
<option>Web Design</option>
<option>Branding</option>
<option>Social Media</option>
<option>Email/Web Hosting</option>
</select>
</label>
</div>
<div class="form-row">
<label>
<span>Message</span>
<textarea name="message"></textarea>
</label>
</div>
<div class="form-row">
<button type="button" name="send">Get A Quote</button>
</div>
</form>
我是Javascript和AJAX的新手,但我从一些类似的线程中复制了一些代码,并尝试将其自定义到我的网站
<script type="text/javascript">
$(".quote-form").submit(function(e) {
e.preventDefault();
$.ajax({
type: 'POST',
data: $(".quote-form").serialize(),
url: 'url',
success: function(data) {
$("#myModal").modal("show");
}
});
return false;
});
});
</script>
<!--Modal container-->
<div id="myModal" class="modal">
<!-- Modal content-->
<div class="modal-content">
<span class="close">x</span>
<p>Some text in the Modal..</p>
</div>
</div>
单击提交按钮时没有任何反应。 即使是acknowledge.php也不会执行。 我究竟做错了什么?
你需要将你的代码包装在document.ready()函数中:
<script type="text/javascript">
$(function(){
$(".quote-form").submit(function(e){
e.preventDefault();
$.ajax({
type : 'POST',
data: $(".quote-form").serialize(),
url : 'url',
success: function(data) {
$("#myModal").modal("show");
}
});
return false;
});
});
</script>
UPDATE
您需要更改按钮的类型才能像这样submit
<button type="submit" name="send">Get A Quote</button>
一些阻碍你的事情:
在你的javascript中,你有一个尾随});
就在最后。
您的button
无效触发javascript中的提交事件。 您应该更改按钮或使用正确的提交输入。 或者使用type="submit"
。
您在成功回调中没有对data
做任何事情。 所以当模态打开时,没有其他事情发生。
您的AJAX请求中的URL未设置。 您可以使用this.action
在此处使用表单的操作URL。
我做了一些改变,你可以在我的小提琴中预览。
您应忽略小提琴的某些部分,例如ajax url
和data
选项。 那应该是这样的:
$.ajax({
type: 'POST',
url: this.action,
data: $(this).serialize(),
//...
});
我们现在显然不知道的是你是否已将jQuery和bootstrap等依赖脚本包含在页面中。
例如: <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
是bootstrap javascript。
确保jQuery高于bootstrap,否则bootstrap将无法加载,因为它依赖于jQuery。 您可能还需要使用bootstrap CSS。
最后,你需要检查你的action
的形式是正确的网址,并且被发送处理,并在你的表单中的数据echo
编回为HTML。
您还需要访问bootstrap文档,获取模型的更好示例,并查看表单区域以修改此表单。
您可以在浏览器中使用开发人员工具,如果仍有问题,请记录控制台中javascript引发的任何错误。 ( Ctrl + Shift + I )。
您不需要在文档中包装任何内容。
你做错了两件事
首先,您需要使用document.ready包装代码
$(function(){
});
然后你需要修复你的网址
var form = $(".quote-form");
$.ajax({
type : 'POST',
data: form .serialize(),
url : form.attr('action'),
success: function(data) {
$("#myModal").modal("show");
},
error: function (jqXHR, textStatus, errorThrown) {
alert(errorThrown);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.