首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jQuery的..live/..bind来影响由for循环创建的输入

使用jQuery的..live/..bind来影响由for循环创建的输入
EN

Stack Overflow用户
提问于 2011-06-08 17:19:50
回答 1查看 235关注 0票数 0

我有两个数组,一个具有输入名称,另一个具有给出每个输入的值。有7个输入,所以我做了一个循环,用它的值填充每个输入,然后使它在输入集中时文本消失,如果没有输入,则恢复原始值文本。这可以通过使用jQuery的循环来完成吗?在我看来,.live和.bind不可能达到这个目的。我会在每个输入事件焦点和模糊事件中硬核吗?

代码语言:javascript
复制
for (var i=0;i<7;i++) {

    $('#user_' + input_names[i]).attr('value', default_values[i]);

    $('#user_' + input_names[i]).live("blur", function(){
        if(this.value == '')this.value=default_values[i];
    });

    $('#user_' + input_names[i]).live("focus", function(){
        if(this.value == default_values[i])this.value='';
    });

}

在这里进行更新,根据Eric的请求释放数组:

代码语言:javascript
复制
var input_names = ['username', 'password'];
var default_values = ['Username', 'Password'];

for (var i=0;i<2;i++) {    
    $('#user_' + input_names[i]).attr('value', default_values[i]);

    $('#user_' + input_names[i]).blur(function(){
        if(this.value == '')this.value=default_values[i];
    });

    $('#user_' + input_names[i]).focus(function(){
        if(this.value == default_values[i])this.value='';
    });
}
EN

回答 1

Stack Overflow用户

发布于 2011-06-08 17:23:39

看起来您在寻找HTML5 placeholder属性。只需将HTML更改为:

代码语言:javascript
复制
<input id="user_username" placeholder="Username" />
<input id="user_password" placeholder="Password" />

如果您想要向后兼容,有一个jQuery插件。引用插件后,只需执行以下操作:

代码语言:javascript
复制
$('input[placeholder]').placeholder();

至于您的初始代码有什么问题,我怀疑有一个闭包问题,而i保留了7的值。

代码语言:javascript
复制
var inputDefaults = {username: 'Username', password: 'Password'};

$.each(inputDefaults, function(field, defaultValue) {
    $('#user_' + field)
        .attr('value', defaultValue);
        .blur(function() {
            if($(this).val() == '')
                $(this).val(defaultValue);
        })
        .focus(function(){
            if($(this).val() == defaultValue)
                $(this).val('');
        });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6282673

复制
相关文章

相似问题

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