......某个表单已提交......
$.("form").submit(function() {
saveFormValues($(this), "./../..";
}
function saveFormValues(form, path) {
var inputs = getFormData(form);
var params = createAction("saveFormData", inputs);
var url = path + "/scripts/sessions.php";
$.post(url, params);
}
奇怪的是,如果我在中添加一个功能
$.post(url, params, function(data) {
alert(data);
}
我得到一个空白的警告声明。
在scripts / sessions.php中,我有一个函数可以将$ _POST信息保存到文件中,并且sessions.php永远不会保存这个saveFormValues调用。它永远不会出现在文件中。但是,如果我一直试图让它保存,大约每15个人就会实际允许它被保存。这让我相信表单POST会以某种方式阻止这个值保存帖子。有什么帮助吗?
答案 0 :(得分:0)
您需要通过从处理程序返回false来取消原始提交。 更新:如果您希望继续提交原始表单,则可以删除处理程序并从帖子回调中重新提交表单。
$.("form").submit(function() {
saveFormValues($(this), "./../..");
return false; // cancels original submit and allows AJAX post to complete
});
function saveFormValues(form, path) {
var inputs = getFormData(form);
var params = createAction("saveFormData", inputs);
var url = path + "/scripts/sessions.php";
$.post(url, params, function() {
$('form').unbind('submit').trigger('submit');
});
}
答案 1 :(得分:0)
在提交功能中添加return false;
以阻止表单提交:
$.("form").submit(function() {
saveFormValues($(this), "./../.."); return false });
更新:
如果您想稍后提交表单,请保留一个变量以表明是否可以提交:
var canSubmit = false;
$.("form").submit(function() {
if(!canSubmit)
{
saveFormValues($(this), "./../..");
return false;
}
});
以后:
$.post(url, params, function(data) {
alert(data);
canSubmit = true;
$.("form").submit();
}
答案 2 :(得分:0)
所以我没有做一个$ .post,而是尝试将async设置为false的$ .ajax。它可以保存表格值...比如3/5次...任何新的建议?
答案 3 :(得分:0)
所以我决定创建一个不会从表单中保存的项目的关联列表。
$nosave = array("password" => true, "confirmPassword" => true,
"descriptionCount" => true, "detailedDescriptionCount" => true,
"submit" => true, "action" => true, "p" => true);
//Then i decided to go through the $_POST information and save it to the SESSION info.
foreach ($_POST as $key => $value) {
if ($key != $id && !array_key_exists($key, $nosave)) {
//saves the value to the form.
$_SESSION[$id][$key] = $value;
}
}
//The $id is a hidden input.. name="formId" value="someUniqueId" That way whenever
//the form info is saved, its saved under a unique area and can be easily unset.
我没有通过jQuery执行此操作,而是调用了一个函数,该函数大致完成了我的sessions.php文件中的所有操作。