2013-04-22 85 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");