如果值是从js代码中设置的,则maxlength不起作用

maxlength not working if value is set from js code

本文关键字:maxlength 不起作用 设置 js 代码 如果      更新时间:2023-09-26

我的页面中有以下HTML块。

<input type="text" id="fillingInput"/>
<input type="text" id="filledInput" maxlength="5"/>
<input type="button" onclick="$('#filledInput').val($('#fillingInput').val());"/>

单击该按钮时,fillingInput的值被设置为filled Input。但是在设置这样的值时没有考虑最大长度。有什么解决方案吗?

尝试slice:

<input type="button"
  onclick="$('#filledInput').val($('#fillingInput').val().slice(0,5));"/>

试试这个

$(document).ready(function () {
$('#add').click(function () {
    var str = $('#fillingInput').val();
    if (str.length > 5) {
        str = str.substring(0, 5);
        $('#filledInput').val(str);
    }
   });
});

获取此信息的一种方法是。。。删除第5个字符后的所有字符。使用substring()

 <input type="button" id="add" />

JS

 $('#add').click(function(){
   var str=$('#fillingInput').val();
   if(str.length > 5) {
      str = str.substring(0,5);
  }
   $('#filledInput').val(str);
 });

小提琴。。

建议不要使用内联javascript。

如果您使用jQuery,您可以添加一个"valHook",它挂接到.val()的每个调用中

$.valHooks.input = {
    set: function(element, value) {
        if ("maxLength" in element && value.length > element.maxLength)
            value = value.substr(0, element.maxLength);
        element.value = value;
        return true;
    }
};