【发布时间】:2012-04-22 19:31:41
【问题描述】:
我正在使用颜色框从链接打开表单(在单独的 html 文件中),执行验证并将表单提交到 php 脚本。这一切正常。
我现在要做的是让 php 脚本的结果出现在颜色框中。提交的脚本如下:
$.post('processForm.php', $("#chngPass").serialize(), function(data) {
$('#FormContainer').html("<div id='message'></div>");
$('#message').html("<h2>Thank you for request</h2>")
.fadeIn(1500, function() {
$('#message').append(data);
});
});
在某一时刻,我确实收到了消息,但在颜色框关闭时出现在主页上。现在我无法在成功时显示任何内容。
我知道我需要使用“return false”来停止页面刷新,但我已经在脚本的各个部分尝试过,所以不确定应该去哪里。
谁能指点我正确的方向。
'formContainer' 是表单页面中包含表单的 div,目的是用消息替换内容
谢谢
更新: 感谢您到目前为止的输入。仍然无法让验证和提交脚本工作。
我现在使用了几种方法来提交表单,最新的一个是这个:
submitHandler: function() {
var url = "../2010/includes/scripts/php/memberFunctions.php"; //the form processing url
$.ajax({
type: "POST",
url: url,
data: $("#chngPass").serialize(),
success: function(data)
{
$("#chngPassWrapper").html(data);
}
});
return false; // avoid the actual submit of the form.
}
我在没有验证脚本的情况下尝试这个,它可以工作,表单提交,然后在颜色框中用提交的结果替换表单。
放回验证脚本表单再次提交但不停止表单提交刷新页面但提交的结果出现在刷新页面的左上角。
如何使用验证、使用帖子并阻止表单执行提交和刷新页面
这是将上述内容置于上下文中的完整脚本:[link] http://jsfiddle.net/longestdrive/fJELU/
感谢您的帮助
【问题讨论】:
-
将 $('#message') 更改为 $('#cboxContent') 我猜?您需要定位 Colorbox 创建的 contentholder :)
-
如何触发 POST ajax 调用?那就是我要开始的地方。如果是自动触发 Submit 类型操作的元素,请考虑添加 event.preventDefault 调用。或者触发元素可能是一个简单的链接或样式化的 DOM 元素......
标签: jquery forms validation submit colorbox