필드 의 minlength
속성 <input>
이 작동하지 않는 것 같습니다 .
필드 값의 최소 길이를 설정할 수 있도록 HTML5에 다른 속성이 있습니까?
필드 의 minlength
속성 <input>
이 작동하지 않는 것 같습니다 .
필드 값의 최소 길이를 설정할 수 있도록 HTML5에 다른 속성이 있습니까?
답변:
pattern
속성을 사용할 수 있습니다 . required
속성은 또한 그렇지 않으면 빈 값 입력 필드에서 제외됩니다, 필요한 제약 조건 확인 .
<input pattern=".{3,}" required title="3 characters minimum">
<input pattern=".{5,10}" required title="5 to 10 characters">
"빈 또는 최소 길이"패턴을 사용하는 옵션을 작성하려는 경우 다음을 수행 할 수 있습니다.
<input pattern=".{0}|.{5,10}" required title="Either 0 OR (5 to 10 chars)">
<input pattern=".{0}|.{8,}" required title="Either 0 OR (8 chars minimum)">
oninvalid="this.setCustomValidity('Your message')"
setCustomValidity
하는 경우 입력을 수정 한 후에도 계속 오류 메시지가 표시됩니다. 다음 onchange
방법을 사용 하여이 문제를 해결할 수 있습니다 . oninvalid="this.setCustomValidity('Field must contain min. 5 characters')" onchange="try{setCustomValidity('')}catch(e){}"
가 이다minlength
재산 HTML5 스펙 뿐만 아니라, 지금validity.tooShort
인터페이스.
최신 버전의 모든 최신 브라우저에서 둘 다 사용할 수 있습니다. 자세한 내용은 https://caniuse.com/#search=minlength를 참조 하십시오 .
다음은 HTML5 전용 솔루션입니다 (최소 길이 5, 최대 길이 10 문자 유효성 검사를 원할 경우)
http://jsfiddle.net/xhqsB/102/
<form>
<input pattern=".{5,10}">
<input type="submit" value="Check"></input>
</form>
title
의 경우 필수 메시지와 함께 속성을 추가하십시오 .
그렇습니다. maxlength와 같습니다. W3.org 설명서 : http://www.w3.org/TR/html5/forms.html#attr-fe-minlength
경우에 minlength
하지 작업을 수행, 사용 pattern
에 대한 @ Pumbaa80에서 언급 한 바와 같이 속성을 input
태그입니다.
텍스트 영역 :
최대 설정; 사용 maxlength
및 최소이 링크 로 이동 하십시오 .
최대 및 최소 모두 여기에서 찾을 수 있습니다.
minLength 속성 (maxLength와 달리)은 HTML5에 기본적으로 존재하지 않습니다. 그러나 x 자 미만의 필드를 포함하는 경우 필드의 유효성을 검사하는 몇 가지 방법이 있습니다.
이 링크에서 jQuery를 사용하는 예제가 있습니다. http://docs.jquery.com/Plugins/Validation/Methods/minlength
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
<script type="text/javascript">
jQuery.validator.setDefaults({
debug: true,
success: "valid"
});;
</script>
<script>
$(document).ready(function(){
$("#myform").validate({
rules: {
field: {
required: true,
minlength: 3
}
}
});
});
</script>
</head>
<body>
<form id="myform">
<label for="field">Required, Minimum length 3: </label>
<input class="left" id="field" name="field" />
<br/>
<input type="submit" value="Validate!" />
</form>
</body>
</html>
HTML5는 아니지만 어쨌든 실용적입니다. AngularJS 를 사용 하면 ng-minlength
입력과 텍스트 영역 모두에 사용할 수 있습니다 . 이 Plunk 도 참조하십시오 .
data-ng-minlength
하지만 표준에 대한 이유를 것 개발자 관리? > __>
data-ng-minlength
뿐만 아니라 .
jQuery를 사용하고 HTML5를 결합하여 텍스트 길이에 대한 내 솔루션은 최소 길이를 확인해야합니다.
$(document).ready(function(){
$('form textarea[minlength]').on('keyup', function(){
e_len = $(this).val().trim().length
e_min_len = Number($(this).attr('minlength'))
message = e_min_len <= e_len ? '' : e_min_len + ' characters minimum'
this.setCustomValidity(message)
})
})
<form action="">
<textarea name="test_min_length" id="" cols="30" rows="10" minlength="10"></textarea>
</form>
minlength
속성은 이제 대부분의 브라우저 에서 널리 지원됩니다 .
<input type="text" minlength="2" required>
그러나 다른 HTML5 기능과 마찬가지로 IE11은이 파노라마에서 누락되었습니다. 따라서 IE11 사용자가 넓은 경우 대부분의 브라우저pattern
에서 거의 모든 보드에서 지원되는 HTML5 속성을 사용하는 것이 좋습니다. (IE11 포함) 좋습니다.
훌륭하고 균일 한 구현과 확장 가능하거나 동적 인 (HTML을 생성하는 프레임 워크를 기반으로) 구현하려면 pattern
속성에 투표 합니다.
<input type="text" pattern=".{2,}" required>
를 사용할 때 여전히 약간의 사용성 문제 가 있습니다 pattern
. 사용자는를 사용할 때 직관적이지 않은 (매우 일반적인) 오류 / 경고 메시지를 보게됩니다 pattern
. 이 jsfiddle 또는 아래를 참조하십시오 .
<h3>In each form type 1 character and press submit</h3>
</h2>
<form action="#">
Input with minlength: <input type="text" minlength="2" required name="i1">
<input type="submit" value="Submit">
</form>
<br>
<form action="#">
Input with patern: <input type="text" pattern=".{2,}" required name="i1">
<input type="submit" value="Submit">
</form>
예를 들어 Chrome에서는 (대부분의 브라우저에서 유사) 다음과 같은 오류 메시지가 나타납니다.
Please lengthen this text to 2 characters or more (you are currently using 1 character)
를 사용 minlength
하여
Please match the format requested
를 사용하여 pattern
.
새로운 버전:
사용 (텍스트 영역 및 입력)을 확장하고 버그를 수정합니다.
// Author: Carlos Machado
// Version: 0.2
// Year: 2015
window.onload = function() {
function testFunction(evt) {
var items = this.elements;
for (var j = 0; j < items.length; j++) {
if ((items[j].tagName == "INPUT" || items[j].tagName == "TEXTAREA") && items[j].hasAttribute("minlength")) {
if (items[j].value.length < items[j].getAttribute("minlength") && items[j].value != "") {
items[j].setCustomValidity("The minimum number of characters is " + items[j].getAttribute("minlength") + ".");
items[j].focus();
evt.defaultPrevented;
return;
}
else {
items[j].setCustomValidity('');
}
}
}
}
var isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
var isChrome = !!window.chrome && !isOpera;
if(!isChrome) {
var forms = document.getElementsByTagName("form");
for(var i = 0; i < forms.length; i++) {
forms[i].addEventListener('submit', testFunction,true);
forms[i].addEventListener('change', testFunction,true);
}
}
}
자동 완성이 켜져 있고 메소드에서 자동 완성 브라우저 빌드에 의해 필드가 필드 인 경우 때때로 크롬에서 최소 길이 유효성 검사 규칙을 무시하므로이 경우 다음 속성으로 자동 완성을 비활성화해야합니다.
autocomplete = "off"
<input autocomplete="new-password" name="password" id="password" type="password" placeholder="Password" maxlength="12" minlength="6" required />
http://caniuse.com/#search=minlength를 참조 하십시오 . 일부 브라우저는이 속성을 지원하지 않을 수 있습니다.
"type"값 중 하나가 다음 중 하나 인 경우 :
텍스트, 이메일, 검색, 비밀번호, 전화 또는 URL (경고 : 번호 포함 안 됨 | 브라우저 지원 "전화"없음 -2017.10)
최소 길이 사용 (/ maxlength) 속성을 하면 최소 문자 수를 지정합니다.
예.
<input type="text" minlength="11" maxlength="11" pattern="[0-9]*" placeholder="input your phone number">
또는 "pattern"속성을 사용하십시오 :
<input type="text" pattern="[0-9]{11}" placeholder="input your phone number">
"type"이 number 이면 althougth minlength (/ maxlength)가 지원되지 않으면 min을 사용할 수 있습니다 (/ max) 속성을 대신 .
예.
<input type="number" min="100" max="999" placeholder="input a three-digit number">
이 JavaScript 코드 [minlength.js]를 작성했습니다.
window.onload = function() {
function testaFunction(evt) {
var elementos = this.elements;
for (var j = 0; j < elementos.length; j++) {
if (elementos[j].tagName == "TEXTAREA" && elementos[j].hasAttribute("minlength")) {
if (elementos[j].value.length < elementos[j].getAttribute("minlength")) {
alert("The textarea control must be at least " + elementos[j].getAttribute("minlength") + " characters.");
evt.preventDefault();
};
}
}
}
var forms = document.getElementsByTagName("form");
for(var i = 0; i < forms.length; i++) {
forms[i].addEventListener('submit', testaFunction, true);
}
}
욕망이 동작을 할 경우,
항상 입력 필드에 작은 접두사를 표시 하거나 사용자가 접두사를 지울 수 없습니다 :
//prefix="prefix_text"
//if the user change the prefix, restore the input with the prefix:
if(document.getElementById('myInput').value.substring(0,prefix.length).localeCompare(prefix))
document.getElementById('myInput').value = prefix;
내 경우에는, 여기서 내가 가장 수동으로 파이어 폭스 (43.0.4)를 사용하여 검증, minlength
그리고 validity.tooShort
불행히도 사용할 수 없습니다.
진행하기 위해 최소 길이 만 저장하면되므로 쉽고 편리한 방법은이 값을 입력 태그의 다른 유효한 속성에 지정하는 것입니다. 그 경우에, 당신은 사용할 수 있습니다 min
, max
그리고 step
[유형 = "숫자"] 입력에서 속성을.
이러한 제한을 배열에 저장하는 대신 요소 ID를 배열 색인과 일치시키는 대신 동일한 입력에 저장하는 것이 더 쉽습니다.