我有一個需要通過.onblur驗證輸入,使得無論何時文本輸入失去焦點,它都會被相同的JS函數驗證。簡單的動態形式
我的問題是與JS功能。我想抓住失去焦點的物品的價值。
function valid(){
if (isNaN("this should be the value of the text item??")){
}
Thankss ..
我有一個需要通過.onblur驗證輸入,使得無論何時文本輸入失去焦點,它都會被相同的JS函數驗證。簡單的動態形式
我的問題是與JS功能。我想抓住失去焦點的物品的價值。
function valid(){
if (isNaN("this should be the value of the text item??")){
}
Thankss ..
搶你模糊的物品的價值,你應該onBlur
觸發添加到DOM元素如下:
<input type="text" name="validate_me" onBlur="valid(this);" />
你有機會這樣到觸發了onBlur
事件的DOM元素,並且可以訪問其屬性(例如在textarea
元素的情況下爲value
或innerHTML
。
你valid
功能可以是這樣的:
function valid(element) {
if (element.value != '' && isNaN(element.value))
alert('This field is not valid!');
};
是的,謝謝。但我如何在JS中這樣做。 :( – 2013-02-19 15:49:46
你可以使用'document.onLoad'來註冊一個方法,該方法將使用'document.getElementByTagName('input')'查找所有輸入,然後爲每個輸入註冊'onBlur'監聽器 – Lucas 2013-02-19 15:56:47
這個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
功能是保證,如果你已經有一個連接監聽器新的驗證偵聽器將現有的後調用一。
請張貼一些代碼。 – j08691 2013-02-19 15:38:17