我遇到了.submit
处理程序的奇怪问题。
function validateOnSubmit() {
//sacar el rojo de textfield de producto
if (currentRestrictions == null) {
//debe seleccionar un producto
$("#invalidProductDialog").dialog("open");
return false;
} else if (!currentRestrictions.allows($("#largo").val(), $("#ancho").val(), $("#calibre").val())) {
//hay un error de validacion
$("#invalidDimensionsDialog").dialog("open");
return false;
}
}
...
$("#aForm").submit(validateOnSubmit);
这个(这个?)代码的问题是,如果它被取消(即通过达到return false
语句)并且表单未提交,则下次告知表单被提交时,此处理程序将即使没有达到return false
语句,也会执行但不会提交。
以前从未发生过这种事情我不指望你找到这个解决方案(因为涉及到很多代码)。但是,由于我正在使用一个框架,我会问一些样板:
问:有没有办法可以通过.submit处理程序列表进行迭代(调试)?
答案 0 :(得分:0)
submit
来电不属于您的职能......
好的,然后......
是否只需要在提交函数结束时对服务器进行ajax调用?
答案 1 :(得分:0)
如何调试 - 它对我有用并为实际问题提供资金! - 通过事件处理程序列表(警告:在版本>中测试= 1.8;我认为更低版本使用不同的方法):
说出你的对象是:$("aSelector")
。
您可以使用$._data($("aSelector")[0], "events")
获取处理程序,它以以下格式返回字典:{handlerName:handlerList},handlerList
一个具有function
属性的处理程序对象列表实际的处理程序。
在这样的附加处理程序中有一个错误(在这个问题的影响下根本不重要,因为最后问题是如何调试处理程序)。
答案 2 :(得分:-1)
问:有没有办法可以通过.submit处理程序列表进行迭代(调试)?
答:您可以使用Firefox进行此操作。在firefox调试器选项卡中,查看事件窗格。在那里,您将找到页面上代码绑定的所有事件。
<强>来源: