我在div的弹出和退出视图之间使用jQuery.form插件到.ajaxSubmit()
(用于记录和有时用于验证)。用户可以向前和向后导航。一些div具有完整的表单数据,在这种情况下,我将使用表单的父div作为target:
。但是,其他div包含文本和导航按钮,并且在ajaxSubmit返回指示要弹出的下一个div id的字符串之后,它们不需要更新(仅.hide()
)。如果我使用$(this).parent('div')
作为目标,整个div将被返回的字符串覆盖。此字符串仅用于填充隐藏元素以帮助浏览这些屏幕/ div。
$('.CSRForm').submit(function () {
$(this).ajaxSubmit({
target: $(this).parent('div'), //for validation purposes on the forms with data
success: StepCall //to check whether the response is valid for redirecting; and logging
});
return false;
});
function StepCall(responseText, statusText, xhr, $form) {
if (responseText != "Negatory") { //"Negatory" would indicate no navigation
$form.parent('div').css("display", "none"); //doesn't seem to work, neither does "hide()"
$('#' + responseText).css("display", "block");
}
}
另外,我不确定我是否在.ajaxSubmit $form
回调中正确使用success
。有人知道吗? website尚不清楚。
答案 0 :(得分:0)
我认为这里的$ form是一个jQuery对象。我认为将该对象转储到控制台以查明对象是否存在(仅仅是为了理智)是一个好主意。如果您使用的是firebug,我相信在JS中使用console.log()应该可以工作。
<强>成功强>
之后调用的回调函数 表格已提交。如果一个 '成功'回调函数是 只要在之后调用它 响应已从 服务器。它通过以下内容 参数:
- 1。)responseText或responseXML值(取决于的值 dataType选项)。
- 2。)statusText
- 3。)xhr(或jQuery包装的表单元素,如果使用jQuery&lt; 1.4)
- 4。)jQuery包装的表单元素(如果使用jQuery&lt; 1.4则未定义)
醇>
所以它绝对应该作为jQuery对象传递给你。我想如果你正在使用jQuery&lt; 1.4但你遇到了麻烦。
答案 1 :(得分:0)
$ form是对您的调用表单的包装引用。
在调用成功函数之前,目标$(this).parent('div')
已使用响应进行了更新。
您的触发表单已被xhr响应覆盖。成功方法中的$ form.parent会出现错误,因为对$ form的引用不再有效,...