2010-12-16 7 views
10

हमारे पास केवल पढ़ने वाले टेक्स्ट बॉक्स पर एक JQuery दिनांक पिकर नियंत्रण है। हम टेक्स्टबॉक्स को केवल पढ़ने के लिए बनाते हैं ताकि उपयोगकर्ता अपनी तिथियां दर्ज न कर सकें। यह बहुत अच्छा काम करता है लेकिन हम उपयोगकर्ताओं को तारीख चुनने के बाद टेक्स्ट बॉक्स की सामग्री को साफ़ करने का विकल्प प्रदान करना चाहते हैं।केवल पढ़ने के लिए jQuery दिनांक पिकर टेक्स्टबॉक्स को कैसे साफ़ करें?

आप यह कैसे कर सकते हैं? स्पष्ट रूप से इस कार्यक्षमता को नियंत्रण में बनाया गया था लेकिन removed था।

नोट:

$("#text-box").keypress(function (e) 
{ 
    e.preventDefault(); 
}); 

अद्यतन: हम प्रयोग कर टेक्स्ट बॉक्स में इनपुट को निष्क्रिय मैं चयनित जवाब की एक मामूली बदलाव के साथ इस हल:

myTextBox.keydown(function(e){ 
     if (e.keyCode == 46 || e.keyCode == 8) { 
      //Delete and backspace clear text 
      $(this).val(''); //Clear text 
      $(this).datepicker("hide"); //Hide the datepicker calendar if displayed 
      $(this).blur(); //aka "unfocus" 
     } 

     //Prevent user from manually entering in a date - have to use the datepicker box 
     e.preventDefault(); 
    }); 
+1

आपको प्रश्न में समाधान अद्यतन करने और गलत समाधान को उत्तर के रूप में चिह्नित करने के बजाय आपके प्रश्न का उत्तर देना चाहिए था। यह निश्चित रूप से मेरे जैसे कई उपयोगकर्ताओं को समय बचाएगा जिन्होंने आपके 'चिह्नित उत्तर' को लागू करने के लिए घंटों बिताए हैं और फिर यह पता लगाया कि यह सही उत्तर नहीं था। और सही उत्तर प्रश्न के रूप में प्रश्न में है। –

उत्तर

6

कैसे हटाने के बारे में keys कि उपयोगकर्ता 'del', 'backspace' जैसे टेक्स्टबॉक्स को साफ़ करने के लिए उपयोग करते हैं?

$("#text-box").keypress(function (e) 
{ 
    switch(e.keyCode) { 
      case 46: // delete 
      case 8: // backspace 
      break; 
      default: 
      e.preventDefault(); 
      break; 
     } 
}); 
+1

कीप्रेस वास्तव में हटाने और बैकस्पेस के लिए काम नहीं करता है। http://stackoverflow.com/a/1116253/2660342 –

2
 
$("#text-box").bind('keypress keydown', function (e) { 
    var tag = e.target.tagName; 
    if (e.which === 8 || e.which === 46) { 
    $(this).val(''); 
    $(this).datepicker("hide"); 
    $(this).blur(); 
    e.stopPropagation(); 
    e.preventDefault(); 
    return false; 
    } 
}); 

यह ब्राउज़रों कि don't trigger keypress events for "delete" keys पर काम करना चाहिए।