2013-02-19 138 views
0

我有一个需要通过.onblur验证输入,使得无论何时文本输入失去焦点,它都会被相同的JS函数验证。简单的动态形式

我的问题是与JS功能。我想抓住失去焦点的物品的价值。

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

} 

Thankss ..

+0

请张贴一些代码。 – j08691 2013-02-19 15:38:17

回答

1

抢你模糊的物品的价值,你应该onBlur触发添加到DOM元素如下:

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

你有机会这样到触发了onBlur事件的DOM元素,并且可以访问其属性(例如在textarea元素的情况下为valueinnerHTML

然后至210

valid功能可以是这样的:

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

是的,谢谢。但我如何在JS中这样做。 :( – 2013-02-19 15:49:46

+1

你可以使用'document.onLoad'来注册一个方法,该方法将使用'document.getElementByTagName('input')'查找所有输入,然后为每个输入注册'onBlur'监听器 – Lucas 2013-02-19 15:56:47

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); 
       }); 
      } 
     } 
    }); 
}()); 

很显然,你将不得不更换警报与验证功能的验证逻辑,但这应该做你所要求的。

一对夫妇的笔记时,立即调用功能是保证你不影响任何全局和after功能是保证,如果你已经有一个连接监听器新的验证侦听器将现有的后调用一。