我有一个包含多个字段的表单。我在所有字段上都有jquery blur事件处理程序,当你离开字段时会进行一些验证。问题是,如果您专注于某个字段,然后单击页面上的任何其他链接,它将验证该字段,但绝不允许单击该链接(或提交表单)。
$('.required').bind('blur', function(event) {
validateAll($(event.target));
});
function validateAll(elm) {
//blah blah
return false;
}
validateAll函数只进行检查并在之后返回false。
基本上,当用户专注于某个字段时,他们必须单击任意按钮两次才能使其正常工作。第一个激活模糊验证,然后第二个实际点击链接。
关于发生了什么的任何想法?
答案 0 :(得分:0)
我发现了一些类似的帖子。
常见的解决方案是尝试在模糊事件处理程序中添加延迟,如下所示:
$('.required').bind('blur', function(event) {
setTimeout(function()
{
validateAll($(event.target));
}, 10);
});
希望这会有所帮助......
答案 1 :(得分:-1)
你没有在你的模糊处理程序中返回validateAll,虽然你说它“只做一次检查并在之后返回false”。如果它返回false以尝试阻止进一步的事件冒泡,那么你想要返回它而不是仅仅调用validateAll(并且不对它返回的内容做任何事情)。
看不出有什么会导致你所描述的问题,但也许我只是误解了这个问题。