我有一个最大长度的文本输入:
<input type="text" name="name" maxlength="50">
这在我尝试过的所有桌面浏览器上都运行良好,但最大长度似乎并未在移动浏览器上强制执行。
有没有办法让移动浏览器强制执行maxlength
?我愿意在解决方案中使用 JavaScript 和/或 jQuery。
我有一个最大长度的文本输入:
<input type="text" name="name" maxlength="50">
这在我尝试过的所有桌面浏览器上都运行良好,但最大长度似乎并未在移动浏览器上强制执行。
有没有办法让移动浏览器强制执行maxlength
?我愿意在解决方案中使用 JavaScript 和/或 jQuery。
试试这个:
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/
此问题是因为您的键盘上启用了预测文本,请禁用它并重试
var max = 1
input.addEventListener('keyup', function (event) {
event.target.value = event.target.value.substring(0, max)
})
我会建议一些更简单的东西。以上对我不起作用,除非为该字段添加了一个空间来获取它......或者如果我在之后点击提交,它仍然通过了信息。
if($(".input") > 20){$(".input") = input.slice(0,20)};
通用 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);
}
});
var maxLength = 10;
var field = $('#myinput');
field.keydown( function(e)
{
if ( $(this).val().length >= maxLength ) e.preventDefault();
});