2009-03-18 7 views
6

का उपयोग कर उपयोगकर्ता इनपुट को प्रतिबंधित करें क्या कोई मुझे जावास्क्रिप्ट में उपयोगकर्ता इनपुट (इनपुट टैग पर) प्रतिबंधित करने के लिए कुछ उदाहरण दिखा सकता है?जावास्क्रिप्ट

कुछ है कि जब हम इनपुट सेट (type = "text") केवल करने के लिए, संख्यात्मक स्वीकार तो यह सांख्यिक के अलावा कोई भी अन्य इनपुट पर ध्यान नहीं देगा ...

मैं (लगता है इस तरह के रूप में यह संख्या इनपुट के लिए आसान है जिप, क्रेडिट कार्ड, पैसा, मूल्य, स्कोर, तारीख आदि ...), और यदि आप मुझे बताएंगे कि कैसे की तरह पैटर्न के साथ इनपुट, कुछ बनाना कर सकते हैं:

 
Please Input Date: 
|-----------------| 
| / / | 
|-----------------| 

पुनश्च: मैंने सुना WebForms 2.0 भविष्य में इसका समर्थन करेगा ... (एसिड 3 अनुपालन ब्राउज़र?)

इनपुट प्रकार = "date"
इनपुट प्रकार = "समय"
इनपुट प्रकार = "number"
इनपुट प्रकार = "पैसा"

लेकिन यह भविष्य से केवल खबर थी: डी

उत्तर

8

यह आपकी मदद कर सकता है।

http://www.w3schools.com/jsref/event_onkeydown.asp

<html> 
<body> 

<script type="text/javascript"> 
function noNumbers(e) 
{ 
var keynum; 
var keychar; 
var numcheck; 

if(window.event) // IE 
{ 
keynum = e.keyCode; 
} 
else if(e.which) // Netscape/Firefox/Opera 
{ 
keynum = e.which; 
} 
keychar = String.fromCharCode(keynum); 
numcheck = /\d/; 
return !numcheck.test(keychar); 
} 
</script> 

<form> 
<input type="text" onkeydown="return noNumbers(event)" /> 
</form> 

</body> 
</html> 
+0

हां, यह सरल चरित्र फ़िल्टरिंग के लिए काम करता है ... लेकिन एक तिथि ("मिमी/डीडी/वाई") जैसे पूर्ण प्रारूपों के बारे में क्या है। यदि आप उचित प्रारूप नहीं हैं तो आप झूठी वापसी नहीं कर सकते हैं या नहीं तो आप कभी भी पहले अंक दर्ज नहीं कर पाएंगे। –

+1

यह सच नहीं है, लेकिन यह एक निश्चित विचार देता है कि इसे कैसे बनाया जा सकता है। Fx। आप केवल तारीख स्ट्रिंग के पहले अक्षर में 0 और 1 टाइप करने में सक्षम होंगे। यदि उपयोगकर्ता उस से ऊपर एक संख्या टाइप करेगा, तो नंबर पंजीकृत नहीं होगा। लेकिन हाँ यह विशिष्ट कोड पूरे जादू नहीं करता है। –

+0

हाँ, मैंने अभी स्पष्टता के लिए टिप्पणी की;) –

3

आप फ़ॉर्म सबमिट पर jQuery मान्य (या जो भी आपके जेएस फ्रेमवर्क ऑफ़र) जैसे विशिष्ट libs का उपयोग कर सकते हैं। दूसरा समाधान कुंजीअप & धुंध घटनाओं पर मान को नियंत्रित करना है, लेकिन यह तय करने के लिए काफी गन्दा हो सकता है कि खराब-निर्मित प्रविष्टि के साथ क्या करना है (विशेष रूप से जब प्रारूप थोड़ा जटिल है - यानी केवल अवांछित वर्ण नहीं)। तो, सब कुछ, मैं सबमिट पर क्लाइंट-साइड कंट्रोल की सिफारिश करता हूं।

+0

मेरे पास पहले से ही सत्यापन विधि सबमिट करने का फॉर्म है: डी – Dels

5

यह सवाल पहले से ही स्वीकार किए जाते हैं जवाब है, लेकिन मुझे लगता है कि इस के लिए एक बेहतर समाधान है। आपको खुद को किडडाउन आदि पर लागू करने की आवश्यकता नहीं है, इसके लिए पुस्तकालय हैं। वे "इनपुट मास्क" का वर्णन करने वाली तकनीक को कॉल करते हैं। this jQuery plugin देखें, यह वही है जो आप चाहते हैं।

+1

यह jQuery प्लगइन अद्भुत है। – Matthew

+0

मुझे वह प्लग-इन पसंद है लेकिन समस्या देशी और क्रोम ब्राउज़र दोनों पर कई एंड्रॉइड डिवाइसों के साथ बनी हुई है जहां बहुत सारे मुद्दे हैं। अधिकांश भाग के लिए, जब एंड्रॉइड की बात आती है तो मैं आमतौर पर मास्क को पूरी तरह से हटा देता हूं। –

संबंधित मुद्दे