जब मैं टाइप बदलता हूं तो मेरा इनपुट आकार परिवर्तन क्यों नहीं करेगा, type="number"
लेकिन यह किसके साथ काम करता है type="text"
?
Email: <input type="text" name="email" size="10"><br/>
number: <input type="number" name="email" size="10">
जवाबों:
ऐसा लगता है कि input
प्रकार विशेषता का number
समर्थन नहीं करता size
है या यह ब्राउज़रों के साथ संगत नहीं है, आप इसे सीएसएस के माध्यम से सेट कर सकते हैं:
input[type=number]{
width: 80px;
}
maxlength="4"
और यह प्रभावी नहीं हो रहा है, जैसा कि यह हैtext
maxlength
समर्थन नहीं करता है, केवल max
विशेषता।
input[type=number][size="3"]{ width: 3em; }
आदि
गलत उपयोग।
इनपुट प्रकार संख्या यह तीर और ऊपर के माध्यम से चयन करने योग्य मूल्य है।
तो मूल रूप से आप "चौड़ाई" सीएसएस शैली की तलाश कर रहे हैं।
इनपुट टेक्स्ट को ऐतिहासिक रूप से मोनोपॉज फ़ॉन्ट के साथ स्वरूपित किया गया है, इसलिए इसका आकार भी इसकी चौड़ाई है।
इनपुट नंबर यह नया है और "आकार" संपत्ति का कोई मतलब नहीं है *। एक विशिष्ट उपयोग:
<input type="number" name="quantity" min="1" max="5">
ठीक करने के लिए, एक शैली जोड़ें:
<input type="number" name="email" style="width: 7em">
EDIT: यदि आप एक रेंज चाहते हैं, तो आपको सेट करना होगा type="range"
और नहीं="number"
EDIT2: * आकार एक अनुमत मान नहीं है (इसलिए, कोई मतलब नहीं)। आधिकारिक W3C विनिर्देशों की जाँच करें
नोट: आकार विशेषता निम्नलिखित इनपुट प्रकारों के साथ काम करती है: पाठ, खोज, टेल, यूआरएल, ईमेल और पासवर्ड।
युक्ति: तत्व में अनुमत अधिकतम वर्णों को निर्दिष्ट करने के लिए, अधिकतम गति का उपयोग करें।
style='width:80'
बहुत बहुत धन्यवाद
लंबाई सेट करने के बजाय, संख्या इनपुट के लिए अधिकतम और न्यूनतम मान सेट करें।
इनपुट बॉक्स फिर सबसे लंबे समय तक वैध मूल्य के लिए आकार बदलता है।
यदि आप 3 अंकों की संख्या की अनुमति देना चाहते हैं तो 999 को अधिकतम के रूप में सेट करें
<input type="number" name="quantity" min="0" max="999">
के लिए <input type=number>
, एचटीएमएल 5 सीआर द्वारा, size
विशेषता अनुमति नहीं है। हालाँकि, अप्रचलित सुविधाओं में यह कहता है: "लेखक को इस विनिर्देश में कहीं और आवश्यकताओं के विपरीत नहीं होना चाहिए, लेकिन इनपुट तत्वों पर अधिकतम गति और आकार विशेषताओं को निर्दिष्ट करें जिनके प्रकार संख्या स्थिति में हैं। इन विशेषताओं का उपयोग न करने का एक वैध कारण यह है कि विरासत के उन उपयोगकर्ता एजेंटों की मदद करना जो टाइप = "संख्या" के साथ इनपुट तत्वों का समर्थन नहीं करते हैं, फिर भी एक उपयोगी चौड़ाई के साथ पाठ क्षेत्र को प्रस्तुत करना है। "
इस प्रकार, size
विशेषता इस्तेमाल किया जा सकता, लेकिन यह केवल पुराने ब्राउज़र है कि समर्थन नहीं करते प्रभावित करता है type=number
ताकि तत्व, वापस एक साधारण पाठ नियंत्रण पर गिर जाता है, <input type=text>
।
इसके पीछे तर्क यह है कि ब्राउज़र को एक उपयोगकर्ता इंटरफ़ेस प्रदान करने की अपेक्षा की जाती है जो अच्छी उपयोगिता के लिए अन्य विशेषताओं को ध्यान में रखता है। जैसा कि कार्यान्वयन भिन्न हो सकते हैं, किसी लेखक द्वारा लगाया गया कोई भी आकार चीजों को गड़बड़ कर सकता है। (यह सीएसएस में नियंत्रण की चौड़ाई निर्धारित करने के लिए भी लागू होता है।)
निष्कर्ष यह है कि आपको <input type=number>
अधिक या कम द्रव सेटअप में उपयोग करना चाहिए जो तत्व के आयामों के बारे में कोई धारणा नहीं बनाता है।
तुम जो चाहते हो maxlength
।
मान्य के लिए
text
,search
,url
,tel
,password
, यह वर्णों की अधिकतम संख्या को परिभाषित करता है (UTF-16 कोड इकाइयों के रूप में) उपयोगकर्ता क्षेत्र में प्रवेश कर सकते हैं। यह पूर्णांक मान 0 या उच्चतर होना चाहिए। यदि कोई अधिकतम गति निर्दिष्ट नहीं है, या एक अमान्य मान निर्दिष्ट है, तो फ़ील्ड की अधिकतम लंबाई नहीं है। यह मान भी न्यूनतम या उससे अधिक के बराबर होना चाहिए।
आप इनमें से किसी एक input
प्रकार का उपयोग करने पर विचार कर सकते हैं।
Onkeypress घटना पर एक का उपयोग करें। एक ज़िप कोड बॉक्स के लिए उदाहरण। यह अधिकतम 5 वर्णों की अनुमति देता है, और यह सुनिश्चित करने के लिए जांचता है कि इनपुट केवल संख्या है।
कुछ भी नहीं बेशक एक सर्वर साइड सत्यापन धड़कता है, लेकिन यह जाने का एक निफ्टी तरीका है।
function validInput(e) {
e = (e) ? e : window.event;
a = document.getElementById('zip-code');
cPress = (e.which) ? e.which : e.keyCode;
if (cPress > 31 && (cPress < 48 || cPress > 57)) {
return false;
} else if (a.value.length >= 5) {
return false;
}
return true;
}
#zip-code {
overflow: hidden;
width: 60px;
}
<label for="zip-code">Zip Code:</label>
<input type="number" id="zip-code" name="zip-code" onkeypress="return validInput(event);" required="required">
change type = "number" टाइप करने के लिए = "tel"