如何扩展在mootools中“options”中声明的函数?

时间:2011-07-01 01:41:27

标签: javascript mootools validation

我想在mootools中扩展“ Form.Validator.Inline ”的“ showError ”功能。该功能在“选项”中声明。

我尝试了以下代码,但它无效。

var exFormValidator = new Class({
            Extends:  Form.Validator.Inline,
            options: {
                    showError: function(element) {
                        var error = element.getPrevious();
                        if(error != null){
                            error.dispose();
                        }
                        this.parent(element);
                    }
                }
        }); 

我可以通过复制“ mootools-more ”中的代码来实现它,如下所示:

        var exFormValidator = new Class({
            Extends:  Form.Validator.Inline,
            options: {
                    showError: function(element) {
                        var error = element.getPrevious();
                        if(error != null){
                            error.dispose();
                        }
                        if (element.reveal) element.reveal();
                        else element.setStyle('display', 'block');
                    }
                }
        });

但我不认为这是做事的方式。有没有替代/正确的方法呢?

1 个答案:

答案 0 :(得分:0)

找到了答案。 “ Form.Validator.Inline ”中有一个“ onShowAdvice()”事件。您必须按如下方式扩展它:

        var formValidator = new Form.Validator.Inline(regForm, {
                errorPrefix: '',
                serial: false,
                onShowAdvice: function(element, advice) {
                    var error = advice.getPrevious();
                    if(error != null) {
                        error.dispose();
                    }
                }
            });

showAdvice 函数正在调用showError。所以叫它会做的事情;但问题仍然存在。是否可以在“选项”中扩展功能?