ऐसा लगता है कि 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
में संपत्ति एचटीएमएल 5 कल्पना अब है, साथ ही validity.tooShort
इंटरफ़ेस।
दोनों अब सभी आधुनिक ब्राउज़रों के हाल के संस्करणों में सक्षम हैं। विवरण के लिए, https://caniuse.com/#search=minlength देखें ।
यहाँ HTML5- केवल समाधान है (यदि आप 5 minlength चाहते हैं, तो अधिकतम 10 वर्ण सत्यापन)
http://jsfiddle.net/xhqsB/102/
<form>
<input pattern=".{5,10}">
<input type="submit" value="Check"></input>
</form>
title
के लिए आवश्यक संदेश के साथ विशेषता जोड़ें ।
pattern
जवाब कुछ महीने पहले दिया गया है । यह उत्तर कैसे बेहतर है?
हाँ, वहाँ यह है। यह अधिकतम गति की तरह है। W3.org प्रलेखन: http://www.w3.org/TR/html5/forms.html#attr-fe-minlength
यदि minlength
काम नहीं करता है, pattern
तो input
टैग के लिए @ Pumbaa80 द्वारा बताई गई विशेषता का उपयोग करें ।
Textarea के लिए:
अधिकतम सेटिंग के लिए; उपयोग maxlength
और मिनट के लिए इस लिंक पर जाएँ ।
आपको यहाँ अधिकतम और न्यूनतम दोनों मिलेंगे।
मैंने साथ या बिना अधिकतम गति और मीनल का उपयोग किया required
और यह मेरे लिए HTML5 के लिए बहुत अच्छा काम किया।
<input id="passcode" type="password" minlength="8" maxlength="10">
`
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
इनपुट और टेक्स्टारेज़ दोनों के लिए उपयोग कर सकते हैं । इस प्लंक को भी देखें ।
data-ng-minlength
लेकिन एक डेवलपर मानकों का ध्यान क्यों रखेगा? > __>
data-ng-minlength
और साथ ही ।
JQuery का उपयोग करके textarea के लिए मेरा समाधान और न्यूनतम लंबाई की जांच के लिए 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
एचटीएमएल 5 विशेषता का उपयोग करने पर विचार करें, जो कि अधिकांश ब्राउज़रों में बोर्ड भर में समर्थित है (जिसमें 1111 भी शामिल है)।
एक अच्छा और एकसमान कार्यान्वयन और शायद एक्स्टेंसिबल या डायनामिक (आपके 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
।
नया संस्करण:
यह उपयोग (textarea और इनपुट) का विस्तार करता है और बग को ठीक करता है।
// 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);
}
}
}
मुझे लगता है कि कभी-कभी क्रोम में जब ऑटोफ़िल चालू होती है और फ़ील्ड ऑटोफ़िल ब्राउज़र द्वारा विधि में निर्मित होती हैं, तो यह मीनलॉन्ग वेलिडेशन नियमों को दरकिनार कर देती है, इसलिए इस मामले में आपको निम्नलिखित विशेषता द्वारा ऑटोफ़िल को अक्षम करना होगा:
स्वत: पूर्ण = "बंद"
<input autocomplete="new-password" name="password" id="password" type="password" placeholder="Password" maxlength="12" minlength="6" required />
Http://caniuse.com/#search=minlength देखें , कुछ ब्राउज़र इस विशेषता का समर्थन नहीं कर सकते हैं।
यदि "प्रकार" का मान उनमें से एक है:
पाठ, ईमेल, खोज, पासवर्ड, टेलीफोन, या url (चेतावनी: नहीं शामिल संख्या | कोई ब्राउज़र समर्थन "टेलीफोन" अब - 2017.10)
माइनलेंथ (/ अधिकतम गति) विशेषता का उपयोग करें , यह वर्णों की न्यूनतम संख्या को निर्दिष्ट करता है।
जैसे।
<input type="text" minlength="11" maxlength="11" pattern="[0-9]*" placeholder="input your phone number">
या "पैटर्न" विशेषता का उपयोग करें:
<input type="text" pattern="[0-9]{11}" placeholder="input your phone number">
"प्रकार" है संख्या , althougth MINLENGTH (/ maxlength) का समर्थन नहीं किया है, तो आप उपयोग कर सकते हैं मिनट के बजाय यह (/ अधिकतम) विशेषता।
जैसे।
<input type="number" min="100" max="999" placeholder="input a three-digit number">
मैंने यह जावास्क्रिप्ट कोड लिखा, [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
[प्रकार = "number"] आदानों से गुण।
किसी सरणी में उन सीमाओं को संग्रहीत करने के बजाय, सरणी इंडेक्स से मिलान करने के लिए तत्व आईडी प्राप्त करने के बजाय इसे उसी इनपुट में संग्रहीत करना आसान है।
अधिकतम और न्यूनतम मूल्य दोनों को जोड़ें जो आप अनुमत मानों की श्रेणी निर्दिष्ट कर सकते हैं:
<input type="number" min="1" max="999" />