简单的动态形式

时间:2013-02-19 15:37:17

标签: javascript forms dynamic input textinput

我需要通过.onblur验证输入,这样每当文本输入失去焦点时,它都会被相同的JS函数验证。

我的问题在于JS功能。我想抓住失去焦点的项目的价值。

function valid(){
if (isNaN("this should be the value of the text item??")){

}

Thankss ..

2 个答案:

答案 0 :(得分:1)

要在模糊时获取项目的值,您应该将onBlur触发器添加到DOM元素,如下所示:

<input type="text" name="validate_me" onBlur="valid(this);" />

通过这种方式,您可以访问触发onBlur事件的DOM元素,并且可以访问其属性(例如valueinnerHTML元素textarea

您的valid功能可以是:

function valid(element) {
  if (element.value != '' && isNaN(element.value))
    alert('This field is not valid!');
};

答案 1 :(得分:0)

这个javascript应该满足你的要求:

(function(){
    var after = function(existing,after) {
        if ( existing == null || typeof existing !== 'function' ) {
            return after;
        }
        else {
            return function() { existing(arguments); after(arguments); }
        }
    }

    var validate = function(input) {
        alert('validating ' + input.name);
    }

    window.onload = after(window.onload, function() {
        var inputs = document.getElementsByTagName('input');
        for (var i = 0; i < inputs.length; i++) {
            if ( inputs[i].type === 'text' ) {
                inputs[i].onblur = after(inputs[i].onblur, function() {
                    validate(this);
                });
            }
        }
    });
}());

显然,您必须使用验证逻辑替换validate函数中的警报,但这应该按照您的要求进行。

一些注意事项,立即调用的函数是为了确保你不破坏任何全局变量,而after函数是为了确保如果你已经有一个附加的监听器,你的新验证监听器将被调用在现有的之后。