양식 입력 텍스트 필드에 허용되는 문자 수 제한


115

텍스트 상자에 최대 5 자만 입력하도록 사용자를 제한하거나 제한하는 방법은 무엇입니까?

아래는 내 양식의 일부인 입력 필드입니다.

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

maxSize와 같은 것을 사용하고 있습니까?


16
여기 <input type="text" maxlength="5"> 라이브 데모 : jsfiddle.net/mcBbW/1
Šime Vidas

답변:


174

maxlength :

입력으로 허용되는 최대 문자 수입니다. 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 2011

1
수정했습니다. 이 방법을 사용하면 특정 문자 나 숫자로 제한 할 수 있지만 신경 쓰지 않으면 max Length가 제대로 작동합니다. 당신이 값이는 등, 수 또는 모든 양수 ~ 50 사이 여야하고 싶다면 그렇게 말
b3verelabs

this.form.sessionNo여전히 옳지 않은 것 같습니다. this그 맥락 input에서는 아니라 document.
Jared Farrish 2011

여전히 옳지 않지만 form어느 쪽도 참조하지 않습니다 . this당신이 필요한 전부입니다. 또한 기술적으로으로 요소를 참조하려는 경우 , 즉 form( form/ input) name가 아니라 id, 즉 : document.formName.sessionNum.
Jared Farrish 2011

빨리 입력 한 내용을 수정하여 이전에 a 형식으로 래핑했습니다. 그러나 필드의 현재 값을 얻기 위해 함수에 대한 입력에 참조를 전달한 다음 해당 필드를 제한하려는 논리를 추가하면됩니다.
b3verelabs

8

w3c 에 따르면 MAXLENGTH 속성의 기본값은 무제한입니다. 따라서 최대 값을 지정하지 않으면 사용자가 성경을 몇 번 잘라서 붙여넣고 양식에 붙일 수 있습니다.

MAXLENGTH를 합리적인 숫자로 지정하더라도 처리하기 전에 (php 또는 asp와 같은 것을 사용하여) 서버에 제출 된 데이터의 길이를 다시 확인해야합니다. 어쨌든 기본 MAXLENGTH 제한을 피하는 것은 매우 쉽습니다.


1
@lopezdp, html / javascript 제한을 "피하는"방법은 여러 가지가 있습니다. 확인하기 가장 쉬운 방법은 Chrome으로 페이지를 열고 "요소 검사"를 수행 한 다음 HTML을 수동으로 수정하는 것입니다. 좀 더 정교한 방법은 제한 사항을 무시하고 데이터를 게시하는 스크립트를 작성하는 것입니다 (컬 라이브러리 또는 유사한 것을 사용). 백엔드 개발자는 데이터의 프런트 엔드 유효성 검사를 신뢰해서는 안됩니다. 모든 규칙은 서버에 복제되어야합니다. 프런트 엔드 유효성 검사는 서버에 요청하지 않고 명백한 오류를 지적하여 사용자의 시간을 절약하는 방법 일뿐입니다.
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

maxlenght = "number of charcters"사용

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

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>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.