2013-07-02 12 views
23

मैं चाहता हूं कि उपयोगकर्ता केवल अपने बटन के माध्यम से एक केंडो यूआई डेटपिकर मान को बदलने और पॉप-अप से दिनांक चुनने में सक्षम हों। मैं उपयोगकर्ताओं को डेटपिकर टेक्स्टबॉक्स में टाइप करने से कैसे रोक सकता हूं? क्या मैं पूरे नियंत्रण को अक्षम किए बिना टेक्स्टबॉक्स को अक्षम कर सकता हूं?केंडो यूआई डेटपिकर टाइपिंग

उत्तर

8

अपने इनपुट तत्व का पता लगाएं, और अक्षम यह

$('#datepicker').attr('disabled','disabled'); 

+1

यह काम करता है लेकिन जब इनपुट में डेटा-बाइंड = "अक्षम: XXX" होता है तो यह कुछ कारणों से काम नहीं करेगा – xinthose

+0

मेरे पास एक ही समस्या थी, और 'डेटा- bind = "अक्षम: XXX" 'व्यूमोडेल के परिवर्तन ईवेंट को बाध्यकारी करके, और उस बाध्य फ़ंक्शन में जब भी व्यूमोडेल का डेटा बदलता है तो विशेषता को अक्षम करने की सुविधा होती है। –

2

आप पॉप से ​​तिथि चयनकर्ता में तारीख और केवल चुनिंदा तारीख टाइपिंग करने के लिए उपयोगकर्ता को रोकने चाहते हैं (यह केन्डो डेमो वेबसाइट http://demos.kendoui.com/web/datepicker/index.html पर की कोशिश की) इस कोड को

$(".k-datepicker").find('span').find('input').attr("readonly", "readonly"); 
+0

यह सही – a0z0ra

1
बेशक

कोशिश-अप, तारीख और समय पिकर विजेट केवल यूआई के साथ और ke से नहीं इनपुट के लिए मजबूर करने विकल्प होना चाहिए yboard ... अन्यथा यह एक असली डेटटाइम "गठन" दुःस्वप्न के लिए एक नुस्खा है! मुझे आश्चर्य है कि ढांचा इस स्पष्ट उपयोग के मामले में कुछ भी प्रदान नहीं करता है।

मैं एक ही जरूरत थी और निम्न तर्क का उपयोग कर काम करने के लिए मिल गया:

$("#date").kendoDatePicker({ 
    format: "dd MMMM yyyy" 
}); 
$("#date").attr("readonly","readonly"); 

इस तरह उपयोगकर्ता कुंजीपटल द्वारा ऐसा मान दर्ज नहीं कर सकते हैं और कर सकते हैं केवल लटकती तारीख चयन विंडो का उपयोग कर एक अच्छी तरह से स्वरूपित तारीख इनपुट ।

43

अपने इनपुट तत्व में यह विशेषता और मूल्य जोड़ने ...

onkeydown="return false;" 

इस टाइप इनपुट को निष्क्रिय कर देगा और अभी भी कैलेंडर नियंत्रण इनपुट का उपयोग कर सकते हैं।

+1

एकमात्र समाधान है जिसे मैंने angularjs एकीकरण के साथ अच्छी तरह से काम करने के लिए पाया ...धन्यवाद – simpleusr

4

आप दो तरह से

//disable kendo ui datapicker click event 
    $(".k-datepicker input").bind('click dblclick',function() { 
     return false; 
    }); 

    //make it readonly 
    $(".k-datepicker input").prop("readonly", true); 
+0

मुझे लगता है कि पहला विकल्प उपयोगकर्ता को टैब दबाकर नियंत्रण तक पहुंचने से नहीं रोकेगा। – Andrew

6

उपयोग के रूप में

@(Html.Kendo().DatePicker() 
.Name("FromDate") 
.HtmlAttributes(onkeydown="javascript:return false;" }) 
    ) 

below- यह कीबोर्ड टाइपिंग को निष्क्रिय कर देगा नियंत्रण से यह कर सकते हैं। वैसे ही अन्य स्थितियों को भी संभाला जा सकता है।

+5

यह अच्छी तरह से काम करता है हालांकि वाक्यविन्यास होना चाहिए: HTMLAttributes (नया {onkeydown = "जावास्क्रिप्ट: झूठी वापसी;"}) – iandayman

+0

उत्कृष्ट कामकाज: डी धन्यवाद! –

0

वास्तव में, विजेट इनपुट में टाइप करते समय उपयोगकर्ता को प्रतिबंधित नहीं करता है। इस व्यवहार के लिए कारण यहाँ समझाया गया है: Why widget does not restrict typing

सभी अन्य समाधान इस सूत्र में साझा के साथ साथ, एक एक कस्टम नकाबपोश DatePicker, जो एक विशिष्ट तिथि प्रारूप करने के लिए उपयोगकर्ता को प्रतिबंधित करेगा बना सकते हैं। कैसे इस चेक अधिक जानकारी के लिए डेमो:

Create Date Masking

** ध्यान दें कि यह रूप में केंडो यूआई द्वारा समर्थित नहीं है एक अंतर्निहित सुविधा है, इसलिए आप अपने जोखिम पर उपयोग करने की आवश्यकता होगी। अच्छी खबर यह है कि यह ज्ञात दुष्प्रभावों के बिना बहुत अच्छा काम करता है।

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