Aurelia验证后的自定义模糊功能

时间:2016-12-28 09:41:56

标签: javascript aurelia aurelia-binding aurelia-validation aurelia-framework

我正在使用Aurelia Framework开发SPA。

我添加了一个EventListener来监听blur事件上的每个输入标记。

在该函数内部,我需要进行ajax调用,只有在输入标记已通过所有验证规则时才应触发该调用。

document.addEventListener('blur', function (e: any) {
            if (e.target.dataset.inline && (e.target.value != e.target.defaultValue)) {
                var isValidTag = e.target.tagName === 'INPUT' || e.target.tagName === 'SELECT' ? true : false,
                    dataObject = _self.prepareObject(e.target.dataset.inline),
                    isInlineAllowed = isValidTag ? (dataObject && dataObject.isAllowed ? true : false) : false;
                if (isInlineAllowed) {
                    setTimeout(() => {
                        var hasError = e.target.parentElement.classList.contains("has-error");
                        if (hasError) {
                            console.log('Has Error');
                        }
                        else if (e.target.value != e.target.defaultValue) {
                            _self.peformAjaxCall(_self, e, dataObject);
                            e.target.className = e.target.className + ' highlightSuccess';
                            console.log('Saved');
                        }
                    }, 800);
                }
                else {
                    console.log('Not Allowed');
                }
            }
        }, true);

注意: 我的验证规则也会触发模糊事件。

在没有任何setTimeouts的情况下,有没有其他方法可以删除以实现此目的?

由于

0 个答案:

没有答案