2011-05-24 15 views
30

हटाएं मैं ड्रॉपडाउन सूची चयनित मूल्य के आधार पर डेटपिकर फ़ंक्शन को हटाना चाहता हूं। मैं निम्नलिखित कोड आज़माता हूं, लेकिन जब भी मैं कर्सर को टेक्स्ट बॉक्स में डालता हूं तब भी यह कैलेंडर दिखाता है। कृपया मुझे एक सुझाव दें।डेटपिकर फ़ंक्शन गतिशील रूप से

$("#ddlSearchType").change(function() { 
    if ($(this).val() == "Required Date" || $(this).val() == "Submitted Date") { 
     $("#txtSearch").datepicker(); 
    } else { 
     $("#txtSearch").datepicker("option", "disabled", true); 
    } 
}); 

enter image description here

+0

"आवश्यक दिनांक" और "सबमिट करने की तिथि" ड्रॉप-डाउन के मूल्यों नहीं हैं, वे कर रहे हैं। <विकल्प मूल्य = ""> आवश्यक दिनांक की तलाश करें और आपको जिस मूल्य की आवश्यकता है वह ड्रॉपडाउन की 'मान' विशेषता में होगी। –

+0

क्यों अपने चयन विकल्पों के आधार पर टॉगल छुपा/शो से दस्तावेज़ तैयार (दिनांक पिकर) पर लोड नहीं करें? – ant

+0

मैंने मूल्यों के रूप में "आवश्यक तिथि" और "सबमिट की गई तिथि" का उपयोग किया था। हां, मैं उन्हें बाद में 0,1,2,3 मूल्यों में बदल सकता हूं। तुम्हारे सुझाव के लिए धन्यवाद। – TTCG

उत्तर

71

आप के बजाय विकल्प विधि का उपयोग कर के सक्षम/अक्षम तरीकों की कोशिश कर सकते हैं:

$("#txtSearch").datepicker("enable"); 
$("#txtSearch").datepicker("disable"); 

इस पूरी पाठ बॉक्स अक्षम करता है। तो हो सकता है आप datepicker.destroy() बजाय का उपयोग कर सकते हैं:

$(document).ready(function() { 
    $("#ddlSearchType").change(function() { 
     if ($(this).val() == "Required Date" || $(this).val() == "Submitted Date") { 
      $("#txtSearch").datepicker(); 
     } 
     else { 
      $("#txtSearch").datepicker("destroy"); 
     } 
    }).change(); 
}); 

Demo here

5

बस बल्कि आईडी पर यह बाध्यकारी की तुलना में एक वर्ग के लिए datepicker बाँध। वर्ग निकालें जब आप datepicker रद्द करना चाहते हैं ...

$("#ddlSearchType").change(function() { 
    if ($(this).val() == "Required Date" || $(this).val() == "Submitted Date")     { 
    $("#txtSearch").addClass("mydate"); 
    $(".mydate").datepicker() 
    } else { 
    $("#txtSearch").removeClass("mydate"); 
    } 
}); 
+0

यदि यह पहले काम करता है, तो वर्तमान में यह अभी काम नहीं कर रहा है –

21

डेटपिकर के उदाहरण को नष्ट करें जब आप इसे नहीं चाहते हैं और जब भी आवश्यक हो तो नया उदाहरण बनाएं।

मैं जानता हूँ कि यह बदसूरत है, लेकिन केवल इस काम कर रहा है ...

Check this out

$("#ddlSearchType").change(function() { 
     if ($(this).val() == "Required Date" || $(this).val() == "Submitted Date") { 
       $("#txtSearch").datepicker(); 

     } 
      else { 
       $("#txtSearch").datepicker("destroy");      
     } 
}); 
0

यह समाधान मैं का उपयोग करें। इसमें अधिक लाइनें हैं लेकिन यह केवल एक बार डेटपिकर बनायेगी।

$('#txtSearch').datepicker({ 
    constrainInput:false, 
    beforeShow: function(){ 
     var t = $('#ddlSearchType').val(); 
     if(['Required Date', 'Submitted Date'].indexOf(t)) { 
      $('#txtSearch').prop('readonly', false); 
      return false; 
     } 
     else $('#txtSearch').prop('readonly', true); 
    } 
}); 

datepicker नहीं दिखाया जाएगा, जब तक कि ddlSearchType का मान न तो "आवश्यक तिथि" या "सबमिट करने की तिथि"

0

खैर मैं एक ही मुद्दा था और "नष्ट" लेकिन यह मेरे लिए काम नहीं करने की कोशिश की है। तब मैं के संबंध में निम्न काम मिल गया मेरे एचटीएमएल था:

<input placeholder="Select Date" id="MyControlId" class="form-control datepicker" type="text" /> 

Jquery मेरे लिए यही काम:

लेबल
$('#MyControlId').data('datepicker').remove(); 
संबंधित मुद्दे