我创建了一个函数来将 onblur 事件绑定到元素。该函数采用三个字符串变量。元素的 id、要绑定到元素的函数以及它可能需要的任何参数。然后在函数中,我使用这个建议来利用字符串来调用函数。
绑定在 blur 上的每个函数都是一个验证函数,将返回 true 或 false。我的目标是,如果将多个 onblur 事件添加到元素中,并且其中任何一个返回 false,则不会调用下一个事件。但是正如它现在所写的那样,即使返回 false,添加到元素的每个事件都会触发。
下面我的 jquery 和 javascript 版本都添加了多个 onblur 事件,无论它们返回 true 还是 false,都会触发它们。
this.bindFormElements = function(elementId, ruleName, ruleParameters)
{
var onBlurEvent = function()
{
if(dynFormSkin[ruleName](this, ruleParameters) == false)
{
return false;
}
};
document.getElementById(elementId).addEventListener("blur", onBlurEvent, false);
}
...
this.bindFormElements = function(elementId, ruleName, ruleParameters)
{
$("#" + elementId).blur(function()
{
if(dynFormSkin[ruleName](this, ruleParameters) == false)
{
return false;
}
});
}