如果用户手动输入数据,如何禁用日历控件?

Posted

技术标签:

【中文标题】如果用户手动输入数据,如何禁用日历控件?【英文标题】:How can I disable the calendar control if the user enters data manually? 【发布时间】:2013-06-23 20:15:43 【问题描述】:

我在 s-s-rS 中有一份使用输入作为日期的报告。但是 Chrome 不支持日期时间选择器,所以我添加了一个 jQuery 日期时间选择器。我添加了查找输入控件并用日期时间选择器替换该控件的逻辑。我面临的一个问题是,如果我手动输入了日历控件仍然显示的日期。如果用户手动输入任何值,我想设置该日历控件的可见性。请找到随附的屏幕截图。

下面给出的是我为此目的使用的代码。

 <link rel="Stylesheet" href="../../../../../Core/Styles/jquery-ui-1.10.3.custom.css"/>
   <script type="text/javascript" src="../../../../../Core/Includes/jquery-1.9.1.js">         
   </script>
   <script type="text/javascript" src="../../../../../Core/Includes/jquery-ui.js"></script>
     <script type="text/javascript">
        $(function() 
        $("#rpvReport__ctl0__ctl7__ctl0" ).datepicker();
        $("#rpvReport__ctl0__ctl5__ctl0" ).datepicker();
        $("#rpvReport__ctl0__ctl9__ctl0" ).datepicker();
        $("#rpvReport__ctl0__ctl11__ctl0" ).datepicker();
    );
  </script>

感谢任何帮助!!!!

【问题讨论】:

【参考方案1】:

附加到 keyup 事件(您也可以使用 keydown 或 keypress)。然后您可以评估该字段的当前值。如果它为空,则显示 datepicker 控件。如果没有,则隐藏 datepicker 控件。请参阅以下示例。

    <script>
    $(function() 
        $("#datepicker").datepicker();
        $("#datepicker").keyup(function(event) 
                                    if(event.target.value == "")
                                        $("#datepicker").datepicker("show");
                                    
                                    else 
                                        $("#datepicker").datepicker("hide");
                                    
                               );
    );
    </script>

【讨论】:

以上是关于如果用户手动输入数据,如何禁用日历控件?的主要内容,如果未能解决你的问题,请参考以下文章

报告正文中的SSRS日历控件

13 js处理日历控件(去掉 readonly )

基于数据库选择在 ajax 日历控件中突出显示/禁用特定日期

extjs 如何禁用日期时间控件

如何在wps表格中插入日历表

C# asp.net MVC3 中的日历控件