首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery事件相关问题

问jquery事件相关问题
EN

Stack Overflow用户
提问于 2012-01-28 16:41:50
回答 1查看 57关注 0票数 1

我正在构建一个非常简单的表单验证,它只验证必填字段。这是实验性的,我知道有很多表单验证插件。

我所做的就是调用一个函数,将表单id和以下格式的javascript对象传递给它

代码语言:javascript
复制
{
  control_id1 : {required : 'message to display if control is empty'},
  control_id2 : {required : 'message to display if control is empty'},
  ...
}

该函数所做的是使用for(var K in obj) {...}遍历js对象,并检查具有给定id的控件是否具有空值,如果是,则将span标记附加到具有给定消息的控件的直接父级。

它还将"blur“事件绑定到该控件,以便在失去焦点时可以再次将验证应用于该控件。

你可以在这里看到这一点:http://jsfiddle.net/yvjZF/

正如你所看到的,当你点击按钮时,它会显示消息ok。但是如果控件失去焦点,它就会显示错误的消息。

我找不到原因,可能是我对事件模型有误解。在这方面的任何帮助都将非常感谢。

谢谢,

安然

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-28 19:31:10

不太清楚为什么,但当我更改以下代码时,它就开始工作了:

代码语言:javascript
复制
for(var cid in validation_data)
{ 
    $('#' + cid).blur
    (
        function()
        {
            // validate_control($(this),validation_data[cid]);
            validate_control($(this),validation_data[$(this).attr('name')]);
        }
    );
}

在使用ActionScript编码时,我经常遇到这个问题,这与循环迭代器有关,它影响了循环的前几次迭代。我唯一的解释是,cid变量可能是通过引用而不是按预期的值传递的。

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

https://stackoverflow.com/questions/9043987

复制
相关文章

相似问题

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