【问题标题】:DatePicker clear functionalityDatePicker 清除功能
【发布时间】:2023-03-23 12:02:02
【问题描述】:

我在 jsp 页面中有一个带有日期选择器 (jQuery) 的字段。

示例(日期选择器)

http://jqueryui.com/demos/datepicker/#icon-trigger

页面还有一个“清除”按钮功能,可以清除页面上的所有文本字段以及插入这些字段中的文本,包括从日期选择器中选择的日期。

清除按钮代码

<input type="button" name="buttonclear" id="buttonclear" class="buttonstyle_mid" value="Clear"
  onclick="javascript:clearData();" />

javascript clearData() 代码(用于日期字段)

document.getElementById("DateId").value = "";

日期字段代码

<form:input id="DateId" path="date" class="dateInput" size="11" maxlength="10" readonly="true" />

jQuery DatePicker 代码

 <script type="text/javascript">
        jQuery(function($) {
            $('.dateInput').datePicker();
            });
            $('#DateId').datePicker({
                startDate : '01/01/1970',
                endDate : (new Date()).asString()
            });     
    $('#DateId').bind('dpClosed', function(e, selectedDates) {
                var d = selectedDates[0];
                if (d) {
                    d = new Date(d);
                    $('#DateId1').dpSetStartDate(d.addDays(1).asString());
                }
            });
            $('#DateId1').bind('dpClosed', function(e, selectedDates) {
                var d = selectedDates[0];
                if (d) {
                    d = new Date(d);
                    $('#DateId').dpSetEndDate(d.addDays(-1).asString());
                }
            });
 </script>

我的代码有一个主要缺点。如果我从日期选择器中选择 2011 年 8 月 1 日,然后单击“清除”按钮。日期字段被清除,但我无法再次选择相同的日期(即 2011 年 8 月 1 日)。

清除按钮只清除字段内的值,但不会清除底层DatePicker中的日期

我在这个问题上搜索了很多,但找不到关于这个问题的合适解决方案。任何帮助将不胜感激。

谢谢

【问题讨论】:

  • +1 为您的问题提供了很好的格式!

标签: jquery datepicker


【解决方案1】:

我认为您需要在 clearData() 函数中添加以下内容:

$('.dateInput').datepicker( "setDate" , null );

这会取消设置日期选择器中的选定值。通过像现在这样简单地清除文本字段值,日期选择器不会被更新,因此它与文本字段值不同步。

【讨论】:

  • 感谢 JJ 的回复。真的很感激:)我确实听从了你的建议。但它没有成功。 :(
  • 糟糕!我有两次 .datepicker() 在那里......你明白了吗?如果没有尝试修改的方式。
  • 我确实抓住了:),两种方式都试过了。没有运气:(如果我在这里做错了什么,请纠正。请原谅我的糟糕编程。jQuery 新手) function clearData() { document.getElementById("startDate").value = ""; $('.dateInput').datePicker("setDate" , null ); }
  • +1 供您参考,@JJ。 jQuery 日期选择器可以有一个开箱即用的图像按钮选项来清除值...
【解决方案2】:

这个对我有用: $('.dateInput').datePicker().dpSetSelected(null,true,false);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多