2011-05-24 27 views
30

我想刪除datepicker函數,具體取決於下拉列表選擇的值。我嘗試下面的代碼,但是當我將光標放在文本框中時,它仍然顯示日曆。請給我一個建議。動態刪除日期選擇器函數

$("#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

「要求日期」和「提交日期」是不是下拉值,它們的標籤。查找,您需要的值將位於下拉菜單的'value'屬性中。 – 2011-05-24 08:12:01

+0

爲什麼不將它加載到文檔就緒(日期選擇器),而不是根據您的選擇選項切換隱藏/顯示? – ant 2011-05-24 08:17:09

+0

我用「必填日期」和「提交日期」作爲值。是的,我可以稍後將它們更改爲0,1,2,3。感謝您的建議。 – TTCG 2011-05-24 08:18:31

回答

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

只需綁定到日期選擇器一類,而不是將它綁定到的ID。刪除類時要吊銷日期選擇器...

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

如果以前工作,它目前不工作 – 2015-09-15 16:52:44

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); 
    } 
}); 

的日期選擇器不會顯示,除非ddlSearchType的值爲「要求日期」或「提交日期」

0

嗯,我有同樣的問題,並試圖「消滅」,但不是爲我工作。然後我發現周圍 下面的工作我的HTML是:

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

jQuery的對我來說工作:

$('#MyControlId').data('datepicker').remove(); 
相關問題