我想要一个表格
的通用错误处理程序var errorsBox = function() {
var $errorBox = $('#form-error');
return {
add: function(errors) {
if ($errorBox.length === 0) {
$errorBox = $('<div id="form-error"><ul></ul></div>').appendTo('form');
};
$errorBox.find('ul > li').remove();
$.each(errors, function(i, error) {
$errorBox.find('ul').append('<li>' + error + '</li>');
});
}
};
};
您可以在JSbin上播放。
我正在
errorsBox.add不是函数
我确定这很明显,但我似乎无法理解为什么这可能不起作用。
我做错了什么?
谢谢!
答案 0 :(得分:6)
您将errorsBox
定义为函数。所以,你也可以这样称呼它:
errorsBox().add(...)
答案 1 :(得分:2)
errorsBox是一个返回对象的函数。返回的对象有一个add()函数。
你可以这样做:
errorsBox().add(['error1', 'error2']);
但看起来有点奇怪。也许你没有按照自己想要的方式进行设置。
如果您希望能够以您的方式(errorsBox.add(...)
)调用它,请尝试以下方法:
var errorsBox = {
$errorBox: ('#form-error'),
add: function(errors) {
if ($errorBox.length === 0) {
$errorBox = $('<div id="form-error"><ul></ul></div>').appendTo('form');
};
$errorBox.find('ul > li').remove();
$.each(errors, function(i, error) {
$errorBox.find('ul').append('<li>' + error + '</li>');
});
}
};