简体   繁体   English

达到maxlength后,如何限制字符输入?

[英]How to restrict entry of characters into input after maxlength is reached?

I have an input with special symbol button as an add-on. 我有一个带有特殊符号按钮的输入作为附加组件。

HTML 的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 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;
});

I've put maxlength of input to 10. But after reaching I'm still able to enter characters using add-on/special symbol button. 我已经将输入的最大长度设置为10。但是到达后,我仍然可以使用附加/特殊符号按钮输入字符。

Updated Fiddle 更新小提琴

Use this 用这个

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

Jquery 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');
      } 
  }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 maxlength之后如何限制粘贴功能 - How to restrict paste function after the maxlength 达到 maxlength 后将焦点设置到表中的下一个输入字段 - Set focus to next input field in a table after maxlength reached 当输入最大长度时,即使达到最大长度也会在输入时触发 - On input while maxlength is active trigger even if maxlength is reached 如何根据字符的总宽度指定输入标签的最大长度 - How to specify the maxlength of input tag in terms of the total width of characters 达到 maxLength 时将输入焦点移至下一个输入 - Angular 4 / Typescript - Move input focus to next input when maxLength is reached - Angular 4 / Typescript 如何在不使用库的情况下手动将 Vuejs 中的 Otp 输入字段 maxlength 限制为 1? - How to restrict Otp input field maxlength to one in Vuejs manually without using libraries? 如何限制输入元素中允许的字符集? - How to restrict set of allowed characters in input element? 在maxlength reach或backspace keypress上关注next / prev输入 - Focus next/prev input on maxlength reached or backspace keypress MaxLength /在中编辑器中输入的字符 - MaxLength/characters for input in medium-editor 限制虚拟键盘输入到输入字段 maxLength JavaScript - Restrict virtual keyboard Input to input field maxLength JavaScript
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM