我有一个最大长度的文本输入:
<input type="text" name="name" maxlength="50">
这在我尝试过的所有桌面浏览器上运行良好,但似乎并未在移动浏览器上强制执行最大长度。
有没有办法让移动浏览器强制执行maxlength
?我愿意在解决方案中使用JavaScript和/或jQuery。
答案 0 :(得分:7)
试试这个:
var $input = $('input')
$input.keyup(function(e) {
var max = 5;
if ($input.val().length > max) {
$input.val($input.val().substr(0, max));
}
});
jsFiddle这里:http://jsfiddle.net/fttk2/1/
答案 1 :(得分:1)
var max = 1
input.addEventListener('keyup', function (event) {
event.target.value = event.target.value.substring(0, max)
})
答案 2 :(得分:0)
通用jQuery方式强制执行表单字段的maxlength
。 (我需要它用于sessionStorage,localStorage和param覆盖。)针对可读性进行了优化的代码。
$('input').on('change', function () {
var max = $(this).attr('maxlength'),
val = $(this).val(),
trimmed;
if (max && val) {
trimmed = val.substr(0, max);
$(this).val(trimmed);
}
});
答案 3 :(得分:0)
此问题是因为在键盘上启用了预想性文本,请禁用它,然后重试
答案 4 :(得分:-1)
var maxLength = 10;
var field = $('#myinput');
field.keydown( function(e)
{
if ( $(this).val().length >= maxLength ) e.preventDefault();
});