表单提交后的Jquery弹出窗口
jquery popup after form submission
我有以下代码:
<script type="text/javascript">
$(document).ready(function () {
$("#submit").click(function (e) {
e.preventDefault();
/* Get some values from elements on the page: */
var values = $(this).serialize();
$.ajax({
url: "submit.php",
type: "post",
data: values
});
$("#dialog").dialog({modal: true, height: 200, width: 300 });
});
});
</script>
<body>
<form id="contactfrm">
<input type="text" name="fullname"/>
<input type="text" name="email"/>
<input type="text" name="phone"/>
<a href="" class="submit" id="submit">submit</a>
</form>
</body>
我使用链接的唯一原因是因为设计师已经设计了链接按钮,而不能做提交按钮。
现在当我点击按钮,它弹出窗口,但它从来没有提交表单。我不明白为什么会这样?
发生这种情况是因为您使用了阻止表单提交的e.preventDefault();
。为了提交它,在你的代码末尾写上:$( "form" ).submit();
.
当您调用$.ajax(...)
方法时,将进行异步调用,因此表单将不会被提交。
此外,请注意,当您调用$("#dialog").dialog({modal: true, height: 200, width: 300 });
时,它将在调用$( "form" ).submit();
之后关闭。问题是,我不明白为什么要在提交表单时打开一个对话框。
如果您希望代码在ajax请求完成时运行,请设置success参数:
$.ajax({
url: "submit.php",
type: "post",
data: values,
success: function(data){
$("#dialog").dialog({modal: true, height: 200, width: 300 });
}
});
如果您只是将代码放在ajax请求后面,它将在请求启动后立即运行,而不是在请求成功后运行。
我认为你以错误的方式获得了价值。你应该使用
var values = $(this).parent().serialize();
代替
var values = $(this).serialize();
但是如何使用表单按钮与CSS?
input[type=submit] {
background: none;
border: none;
cursor: Pointer;
}
相关文章:
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 基于窗口宽度jquery的函数的替代方法是什么
- Jquery Onclick将数据发送到新打开的窗口
- jQuery调整大小函数只适用于窗口
- 是否可以使用Jquery操作窗体的目标窗口
- 使用jQuery可以根据窗口大小更改滑块的css高度
- 弹出窗口-jQuery Mobile、Backbone.js和Require.js
- 如何将文本框弹出窗口(Jquery 工具提示或类似工具)添加到画布中的 Fabric JS 图像
- 如何在点击弹出窗口jQuery内应用悬停效果
- 如何关闭模型弹出窗口jquery
- 从新打开的窗口jquery中删除一个节点
- 可拖动的非模态弹出窗口Jquery Mobile
- 在弹出窗口Jquery(灯箱)中打开照片
- 将Modal定位到当前窗口-jQuery
- 什么是窗口?jQuery和窗口.美元的意思
- 在新的窗口jquery功能不工作
- 警告中心元素窗口(jQuery)
- 条形码扫描器触发下一个按钮点击事件和弹出窗口JQuery
- 如何从另一个弹出窗口中的链接调用弹出窗口.Jquery Mobile
- 如何重用剑道ui窗口jquery