使用jQuery隐藏日期选择器
我正在使用struts2 jquery插件的datepicker如下所示
我想把它隐藏在某些条件上。我写了一个像这样的jquery。
$("#frdate").hide(); //this will hide textbox of datepicker $("label[for='frdate']").hide(); // this will hide label of datepicker
但是datepicker按钮仍然显示? 如何使用jquery隐藏它?
The generated html code is: jQuery(document).ready(function () { jQuery.struts2_jquery_ui.initDatepicker(false); }); jQuery(document).ready(function () { var options_frdate = {}; options_frdate.showOn = "both"; options_frdate.buttonImage = "/ONLINE/struts/js/calendar.gif"; options_frdate.maxDate = "0"; options_frdate.jqueryaction = "datepicker"; options_frdate.id = "frdate"; options_frdate.name = "training.fromDate"; jQuery.struts2_jquery_ui.bind(jQuery('#frdate'),options_frdate); });
要隐藏您需要的日期选择器
- 从输入文本字段中销毁datepickerfunction
- 隐藏输入文本字段
要显示您需要的日期选择器
- 显示输入文本字段
- 添加日期选择器function
这是演示: http : //jsfiddle.net/ezKwN/
function hideIt(){ $( "#frdate" ).datepicker( "destroy" ); $( "#frdate" ).hide(); } function showIt(){ $( "#frdate" ).show(); $( "#frdate" ).datepicker(); }
我不知道这是否适用于Struts2 jQuery datepicker,但我希望如此。
但是考虑到使用该标签,你是硬编码到页面的function,它不应该是动态的,然后(如果上述解决方案不起作用),如果你需要根据用户交互显示/隐藏它,你应该考虑使用原生的jQuery datepicker而不是Struts2一个(仅用于动态的datepicker)
编辑:作为另一种选择(比使用本机jQuery重新编码所有日期选择器的影响小),您可以简单地将标记封装在
,并隐藏/显示div。
function hideIt(){ $("#frdate").hide(); $("label[for='frdate']").hide(); $("#frdate").datepicker("destroy" ); } function showIt(){ $("#frdate").show(); $("label[for='frdate']").show(); $("#frdate").datepicker({ showOn : "both", buttonImage : "/path/struts/js/calendar.gif", maxDate : "0", jqueryaction : "datepicker", id : "frdate", name : "training.fromDate" }); }
您可以使用以下两种方法之一隐藏jquery datepicker:
- 完全删除它:
$('input[type=text]#yourInput').datepicker("destroy");
- 隐藏它:
$('input[type=text]#yourInput').datepicker("hide");
- 隐藏它可能更好,因此您不必使用所需的所有参数重新初始化它。
如果需要,您也可以隐藏输入: – $('input[type=text]#yourInput').hide();