表单输入文本字段中允许的字符数限制


115

如何限制或限制用户在文本框中最多输入五个字符?

以下是输入表单的一部分:

<input type="text" id="sessionNo" name="sessionNum" />

使用的是maxSize之类的东西吗?


16
这里<input type="text" maxlength="5"> 现场演示: jsfiddle.net/mcBbW/1
森那维达斯

Answers:


174

最大长度

输入将接受的最大字符数。这可以大于SIZE指定的值,在这种情况下,该字段将适当滚动。默认值为无限制。

<input type="text" maxlength="2" id="sessionNo" name="sessionNum" onkeypress="return isNumberKey(event)" />

但是,这可能会或可能不会受到您的处理程序的影响。您可能还需要使用或添加另一个处理程序函数来测试长度。


在输入阶段进行限制时,我发现此答案很有用。您还可以在提交和使用pattern属性弹出验证消息时在验证阶段限制它。见stackoverflow.com/questions/10281962/...

31

最简单的方法是:

maxlength="5"

所以..将此属性添加到您的控件:

<input type="text" 
    id="sessionNo" 
    name="sessionNum" 
    onkeypress="return isNumberKey(event)" 
    maxlength="5" />

8

将以下内容添加到标题:

<script language="javascript" type="text/javascript">
function limitText(limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    }
}
</script>

    <input type="text" id="sessionNo" name="sessionNum" onKeyDown="limitText(this,5);" 
onKeyUp="limitText(this,5);"" />

this.form.sessionNo似乎有点怀疑。为什么不只是this呢?此外,limitCountlimitNum也似乎顺序/不必要的了呢?
Jared Farrish

1
更正它。如果您希望将其限制为某些字符或数字,可以这样做,但是如果您不关心它,那么max Length将可以正常工作。所以说,如果你想要的值是1-50之间你可以或所有正数,等等
b3verelabs

this.form.sessionNo仍然看起来不正确。this在这种情况下将指向input,而不是document
Jared Farrish

仍然不正确,它没有引用form任何一个。this是你所需要的全部。另外,从技术上讲,如果您想通过引用元素form,则将以(form/ inputname而不是id,即:document.formName.sessionNum
Jared Farrish

正确,我键入要快将其包裹在表格中。但是,您只需将ref传递给函数的输入即可获取该字段的当前值,然后添加要限制该字段的任何逻辑。
b3verelabs

8

根据w3c,MAXLENGTH属性的默认值是一个无限制的数字。因此,如果您未指定最大值,则用户可以多次剪切和粘贴圣经并将其粘贴在表格中。

即使您确实将MAXLENGTH指定为合理的数字,也要确保在处理(使用php或asp之类的东西)之前仔细检查服务器上已提交数据的长度,因为无论如何还是很容易解决基本的MAXLENGTH限制


1
@lopezdp,有多种方法可以“解决” html / javascript限制。最容易检查的是使用Chrome打开“检查元素”页面,然后手动修改HTML。更复杂的解决方法-编写一个脚本,该脚本将忽略任何限制(使用curl库或类似工具)发布数据。作为后端开发人员,您永远不应信任数据的前端验证-所有规则都应在服务器上重复。前端验证只是通过指出明显的错误而不向服务器发出请求来节省用户时间的一种方法。
Val Petruchek

4
<input type="text" maxlength="5">

输入中最多可以输入5个字母。


4

使它更简单

<input type="text" maxlength="3" />

并使用警报来显示已使用了最大字符数。


3

我总是这样:

$(document).ready(function(){
var maxChars = $("#sessionNum");
var max_length = maxChars.attr('maxlength');
if (max_length > 0) {
    maxChars.bind('keyup', function(e){
        length = new Number(maxChars.val().length);
        counter = max_length-length;
        $("#sessionNum_counter").text(counter);
    });
}
});

输入:

<input name="sessionNum" id="sessionNum" maxlength="5" type="text">
Number of chars: <span id="sessionNum_counter">5</span>

2

最长长度

输入将接受的最大字符数。maxlength属性指定元素中允许的最大字符数。

Maxlength W3学校

<form action="/action_page.php">
    Username: <input type="text" name="usrname" maxlength="5"><br>
    <input type="submit" value="Submit">
</form>

1

您可以使用 <input type = "text" maxlength="9">

<input type = "number" maxlength="9">数字或 <input type = "email" maxlength="9">电子邮件验证将显示


1
<input type="number" id="xxx" name="xxx" oninput="maxLengthCheck(this)" maxlength="10">

function maxLengthCheck(object) {
  if (object.value.length > object.maxLength)
  object.value = object.value.slice(0, object.maxLength)
}


0

以下代码包括一个计数...

var count = 1;

do {
    function count_down(obj, count){

    let element = document.getElementById('count'+ count);

    element.innerHTML = 80 - obj.value.length;

    if(80 - obj.value.length < 5){
        element.style.color = "firebrick";
    }else{
        element.style.color = "#333";
    }
}
count++;
} while (count < 20); 
.text-input {
    padding: 8px 16px;
    width: 50%;
    margin-bottom: 5px;
    margin-top: 10px;
    font-size: 20px;
    font-weight: 700;
    font-family: Raleway;
    border: 1px solid dodgerblue;
  }
<p><input placeholder="Title" id="bike-input-title" onkeyup="count_down(this, 3)" maxlength="80"  class="text-input" name="bikeTitle" ></p>
        <span id="count3" style="float: right; font-family: Raleway; font-size:20px; font-weight:600; margin-top:-5px;">80</span><br>


-1
<input type="text" name="MobileNumber" id="MobileNumber" maxlength="10" onkeypress="checkNumber(event);"  placeholder="MobileNumber">

<script>
function checkNumber(key) {
  console.log(key);
  var inputNumber = document.querySelector("#MobileNumber").value;
  if(key.key >= 0 && key.key <= 9) {
    inputNumber += key.key;
  }
  else {
    key.preventDefault();
  }
}
</script>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.