首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >简单动态表单

简单动态表单
EN

Stack Overflow用户
提问于 2013-02-19 23:37:17
回答 2查看 81关注 0票数 0

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

我的问题是JS函数。我想要获取失去焦点的项目的价值。

代码语言:javascript
复制
function valid(){
if (isNaN("this should be the value of the text item??")){

}

谢谢..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-19 23:41:32

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

代码语言:javascript
复制
<input type="text" name="validate_me" onBlur="valid(this);" />

这样,您就可以访问触发了onBlur事件的DOM元素,并可以访问其属性(例如valuetextarea元素中的innerHTML )。

然后,您的valid函数可以类似于:

代码语言:javascript
复制
function valid(element) {
  if (element.value != '' && isNaN(element.value))
    alert('This field is not valid!');
};
票数 1
EN

Stack Overflow用户

发布于 2013-02-20 01:02:39

这个javascript应该可以完成您所要求的操作:

代码语言: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函数是为了确保如果您已经有一个附加的侦听器,那么将在现有侦听器之后调用新的验证侦听器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14961300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档