2013-02-19 325 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功能是保證,如果你已經有一個連接監聽器新的驗證偵聽器將現有的後調用一。