2013-04-22 40 views
0

我们可以使用下面的行与属性来更新所有输入maxlength="100"塞汀文本字段的最大长度

$("input").attr("maxlength", 100); 

我想实现的是的type="text"与最大长度未设置输入更改为maxlength=100,有一个简单的如何实现这一目标?

+0

将长度设置为0或null。 – 2013-04-22 14:29:21

回答

0

你想要这个使用:text Selector

$("input:text").filter(function (index) { 
    return $(this).attr('maxlength') === 'undefined'; 
}).attr("maxlength", 100); 
+0

这将覆盖任何现有的值。 – Alnitak 2013-04-22 14:31:55

+0

@Alnitak:这个怎么样? – 2013-04-22 14:36:53

+0

不能移植到旧版本的jQuery,AFAICR返回一个空字符串,而不是'undefined'来查找缺失的属性。并且通过与字符串“undefined”进行比较来分解它,如果您使用'typeof',则这只是确定的。 – Alnitak 2013-04-22 14:38:25

1

可以使用function version of .attr看所有input type="text"领域的现有maxlength属性,如果旧值为“falsey”只提供一个新的价值:

$('input:text').attr('maxlength', function(_, val) { 
    return val ? val : 100;  // or return val || 100 
}); 
+1

会返回val || 100;'有相同的结果? – Blazemonger 2013-04-22 14:33:49

+1

是的,尽管对于新手来说有些挑剔。 – Alnitak 2013-04-22 14:34:48

0

设置属性:

$("input:text").attr("maxlength", 100); 

删除属性:

$("input:text").removeAttr("maxlength");