我需要通过 .onblur 验证输入,这样每当文本输入失去焦点时,它就会被同一个 JS 函数验证。
我的问题是 JS 函数。我想抓住失去焦点的项目的价值。
function valid(){
if (isNaN("this should be the value of the text item??")){
}
谢谢..
我需要通过 .onblur 验证输入,这样每当文本输入失去焦点时,它就会被同一个 JS 函数验证。
我的问题是 JS 函数。我想抓住失去焦点的项目的价值。
function valid(){
if (isNaN("this should be the value of the text item??")){
}
谢谢..
要在模糊时获取项目的值,您应该将onBlur
触发器添加到 DOM 元素,如下所示:
<input type="text" name="validate_me" onBlur="valid(this);" />
这样您就可以访问触发onBlur
事件的 DOM 元素并可以访问其属性(例如value
或innerHTML
在textarea
元素的情况下)。
你的valid
功能可以是这样的:
function valid(element) {
if (element.value != '' && isNaN(element.value))
alert('This field is not valid!');
};
这个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
函数是为了确保如果您已经有一个附加的侦听器,那么您的新验证侦听器将在现有侦听器之后被调用。