使用jQuery调用时获取模糊源

时间:2013-07-19 19:41:49

标签: javascript jquery blur onblur

我有一个表单(用于用户注册),它通过将其分成隐藏/显示为.slideUp()/。slideDown()的div进行分页。这一切都运行良好,但我想在进入下一页之前用javascript验证每个页面,以减少从服务器端验证返回的错误数量。现在我让他们设置验证onblur。要在单击“下一步”按钮时检查所有元素,我想使用.blur()强制它验证每个输入,但我收到错误。我的onblur函数的一个例子是:

var validateEmpty = function() {
    var $src = $('.registrationPage #' + event.srcElement.id);
    validate($src, "Can't be left empty!", checkEmptyRequired);
}

通过将onblur属性设置为函数来约束它。

其中validate是一个函数,它接受一个jQuery对象,一个错误消息和一个返回布尔值的函数。我得到的错误是

TypeError: Cannot read property 'srcElement' of undefined

所以我很清楚.blur()不会触发javascript事件并只是调用onblur函数。如何以正常模糊(通过在页面中失去焦点)和.blur()的方式获取模糊元素的id?

1 个答案:

答案 0 :(得分:1)

您没有向我们展示如何调用该函数,但您可能应该将该事件作为参数传递,否则它将在某些浏览器中未定义(但不会在IE中):

var validateEmpty = function(event) {
    var $src = $('.registrationPage #' + event.target.id);
    validate($src, "Can't be left empty!", checkEmptyRequired);
}

可以使用类似的东西:

$('.elements').on('blur', validateEmpty);

此外,srcElement很少使用(它是IE特定的),我认为jQuery规范化target,但你总是可以这样做以确保:

var target = event.target || event.srcElement;

看起来您的代码只能在Internet Explorer中使用?