【问题标题】:How to restrict entry of characters into input after maxlength is reached?达到最大长度后如何限制字符输入?
【发布时间】:2016-08-11 11:02:23
【问题描述】:

我有一个带有特殊符号按钮的输入作为附加组件。

HTML

<div class="col-md-3 col-xs-9 col-sm-9">
  <div class="input-group">
    <input type="text" maxlength="10" class="form-control" id="symboltext"> <span class="input-group-btn">
                                                                        <button class="btn btn-default" type="button" id="popbutton" data-placement="bottom" data-container="body"><span class="glyphicon glyphicon-edit"></span>
    </button>
    </span>
  </div>
</div>

JQuery

var popupElement = '<div class="btn-group" role="group"><button class="btn btn-sm btn-default" id="regbtn"><span class="glyphicon glyphicon-registration-mark"></button><button class="btn btn-sm btn-default" id="copyrightbtn"><span class="glyphicon glyphicon-copyright-mark"><span></button><button class="btn btn-sm btn-default" id="trademarkbtn"><sup>TM</sup></button></div>';
var lastPoint = 0;
$('#popbutton').popover({
  animation: true,
  content: popupElement,
  html: true
});

function textbox() {
  var ctl = document.getElementById('symboltext');
  var startPos = ctl.selectionStart;
  var endPos = ctl.selectionEnd;
  lastPoint = startPos;
  return {
    s: startPos,
    e: endPos
  };
}

function getVal(insert) {
  var val = $("#symboltext").val();
  var index = textbox();
  val = val.slice(0, index.s) + insert + val.slice(index.s)
  lastPoint += 1;
  return val;
}

$(document).on('click', "#trademarkbtn", function() {
  var val = getVal("\u2122");
  var input = $("#symboltext");
  input.val(val).focus();
  input[0].selectionStart = input[0].selectionEnd = lastPoint;
});


$(document).on('click', "#regbtn", function() {
  var val = getVal("\u00AE");
  var input = $("#symboltext");
  input.val(val).focus();
  input[0].selectionStart = input[0].selectionEnd = lastPoint;
});

$(document).on('click', "#copyrightbtn", function() {
  var val = getVal("\u00A9");
  var input = $("#symboltext");
  input.val(val).focus();
  input[0].selectionStart = input[0].selectionEnd = lastPoint;
});

我已将输入的最大长度设置为 10。但达到后我仍然可以使用附加/特殊符号按钮输入字符。

Updated Fiddle

【问题讨论】:

  • Fiddle 不允许我输入超过 10 个字符。那么具体的问题是什么?
  • 什么是special symbol button
  • @Akshay 在输入中输入 10 个字符后。现在使用该图标添加符号。您将能够插入
  • @MoshFeu 我创建了一个在输入中插入特殊符号的按钮
  • 在设置值之前使用此条件 - if($('#symboltext').val().length

标签: javascript jquery html input maxlength


【解决方案1】:

使用这个

<input id="field" type="text" maxlength="10" />

jQuery

$('#field').keypress(function (event) {
  if ($('#field').val().length <= 10) {

      if (event.keyCode != '110' && event.charCode != '46') {
          $('#field').attr('maxlength', '09');
      } else if (event.keyCode == '110' || event.charCode == '46') {
          $('#field').attr('maxlength', '11');
      } 
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 2014-03-08
    • 1970-01-01
    • 2022-01-03
    • 2023-04-07
    相关资源
    最近更新 更多