2013-05-20 15 views
8

पर केवल वर्णमाला दर्ज करने के लिए जावास्क्रिप्ट फ़ंक्शन मैं <textarea> और दूसरे में संख्यात्मक मानों के अंदर केवल वर्ण मान दर्ज करना चाहता हूं। मैं एक जावास्क्रिप्ट फ़ंक्शन बनाने में सक्षम हूं जो का उपयोग करके <textarea> में संख्यात्मक मानों को दर्ज करने की अनुमति देता है। यह फ़ायरफ़ॉक्स और क्रोम में काम करता है।कुंजीपटल

अक्षरों के लिए मैं windows.event संपत्ति का उपयोग कर एक और जावास्क्रिप्ट फ़ंक्शन बना रहा हूं। केवल समस्या यह है कि यह केवल क्रोम में काम करता है और फ़ायरफ़ॉक्स में नहीं।

मैं जानना चाहता हूं कि onkeypress ईवेंट का उपयोग करके केवल वर्णमाला को कैसे दर्ज किया जाए, जैसा कि केवल संख्यात्मक मानों को दर्ज करने के लिए उपयोग किया जाता है?

function isNumberKey(evt){ <!--Function to accept only numeric values--> 
 
    //var e = evt || window.event; 
 
\t var charCode = (evt.which) ? evt.which : evt.keyCode 
 
    if (charCode != 46 && charCode > 31 
 
\t && (charCode < 48 || charCode > 57)) 
 
     return false; 
 
     return true; 
 
\t } 
 
\t \t  
 
    function ValidateAlpha(evt) 
 
    { 
 
     var keyCode = (evt.which) ? evt.which : evt.keyCode 
 
     if ((keyCode < 65 || keyCode > 90) && (keyCode < 97 || keyCode > 123) && keyCode != 32) 
 
      
 
     return false; 
 
      return true; 
 
    }
<label for="cname" class="label">The Risk Cluster Name</label> 
 
<textarea id="cname" rows="1px" cols="20px" style="resize:none" placeholder="Cluster Name" onKeyPress="return ValidateAlpha(event);"></textarea> 
 
<br> 
 
<label for="cnum">Risk Cluster Number:</label> 
 
<textarea id="cmun" rows="1px" cols="12px" style="resize:none" placeholder="Cluster Number" onkeypress="return isNumberKey(event)"></textarea>

+3

_ "केवल चरित्र मूल्यों" का उपयोग करता है _ - आप केवल अक्षर मतलब है? याद रखें कि कीप्रेस पर मान्य होना पर्याप्त नहीं है, क्योंकि उपयोगकर्ता कुंजीपटल ईवेंट के बिना कॉपी/पेस्ट या ड्रैग'ड्रॉप कर सकता है। – nnnnnn

+0

इसके बजाय नियमित अभिव्यक्तियों का उपयोग करें? – Nanda

+0

यहां वर्णों के कुछ उदाहरण दिए गए हैं: "1", "&", "ए", ")", "डब्ल्यू"। आपका मतलब है _letters._ – nnnnnn

उत्तर

0

हाय कोड यह सभी ब्राउज़रों में मेरे लिए काम किया नीचे की कोशिश, यह की तरह नंबर और कुछ विशेष वर्ण की अनुमति देता है + (-):। पाठ बॉक्स उपयोग में रूप

इस प्रकार है
<asp:Textbox Id="txtPhone" runat="server" onKeyPress="return onlyNumbersandSpecialChar()">  </asp:Textbox> 

function onlyNumbersandSpecialChar(evt) { 
    var e = window.event || evt; 
    var charCode = e.which || e.keyCode; 
    if (charCode > 31 && (charCode < 48 || charCode > 57 || charCode > 107 || charCode > 219 ||   charCode > 221) && charCode != 40 && charCode != 32 && charCode != 41 && (charCode < 43 || charCode > 46)) { 
     if (window.event) //IE 
      window.event.returnValue = false; 
     else //Firefox 
      e.preventDefault(); 
    } 
    return true; 

    } 

</script> 
+0

काम नहीं कर रहा है, लेकिन मैं केवल अक्षर (निचला और ऊपरी मामला) और कुछ विशेष वर्ण जैसे ",। + -:" और अक्षरों के बीच की जगह इनपुट करना चाहता था .... तो क्या आप अपना उत्तर संपादित कर सकते हैं तदनुसार... – Lucy

4

हैं आपको पुराने ब्राउज़र का समर्थन करने की आवश्यकता नहीं है, मैं input ईवेंट का उपयोग करूंगा। यदि उपयोगकर्ता textarea में टेक्स्ट चिपकाता है तो इस तरह आप गैर-अल्फा वर्ण भी पकड़ सकते हैं।

मैंने आपके HTML को थोड़ा सा साफ़ किया। सबसे महत्वपूर्ण परिवर्तन cname और cnum पर होने वाली घटनाओं के लिए हैं। ध्यान दें कि दोनों मामलों में घटना को oninput में बदल दिया गया है।

<label for="cname" class="label"> The Risk Cluster Name</label> 
<textarea id="cname" rows="1" cols="20" style="resize:none" placeholder="Cluster Name" oninput="validateAlpha();"></textarea> 
<label for="cnum">Risk Cluster Number:</label> 
<textarea id="cmun" rows="1" cols="12" style="resize:none" placeholder="Cluster Number" oninput="isNumberKey();"></textarea><br /><br /><br /> 

मान लिया जाये कि आप cname केवल केवल संख्या स्वीकार करने के लिए वर्णमाला में अक्षर और cnum स्वीकार करना चाहते हैं, आपकी जावास्क्रिप्ट होना चाहिए:

function validateAlpha(){ 
    var textInput = document.getElementById("cname").value; 
    textInput = textInput.replace(/[^A-Za-z]/g, ""); 
    document.getElementById("cname").value = textInput; 
} 
function isNumberKey(){ 
    var textInput = document.getElementById("cmun").value; 
    textInput = textInput.replace(/[^0-9]/g, ""); 
    document.getElementById("cmun").value = textInput; 
} 

इस कोड regular expressions एक तरह से तार में पैटर्न मिलान करने के लिए उपयोग करता है।

1

बेस्ट

<input type="text" name="checkno" id="checkno" class="form-control" value="" onkeypress="return isNumber(event)"/> 

<input type="text" name="checkname" id="checkname" class="form-control" value="" onkeypress="return isAlfa(event)"/> 


function isNumber(evt) { 
    evt = (evt) ? evt : window.event; 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) { 
     return false; 
    } 
    return true; 
} 

function isAlfa(evt) { 
    evt = (evt) ? evt : window.event; 
    var charCode = (evt.which) ? evt.which : evt.keyCode; 
    if (charCode > 31 && (charCode < 65 || charCode > 90) && (charCode < 97 || charCode > 122)) { 
     return false; 
    } 
    return true; 
} 
2
function lettersOnly() 
{ 
      var charCode = event.keyCode; 

      if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || charCode == 8) 

       return true; 
      else 
       return false; 
} 

<input type="text" name="fname" value="" onkeypress="return lettersOnly(event)"/> 
संबंधित मुद्दे