【问题标题】:Set initial value in datepicker with jquery?用jquery在datepicker中设置初始值?
【发布时间】:2012-04-12 21:32:02
【问题描述】:

我正在尝试在我的 jquery ui datepicker 中设置一个初始值。我尝试了几种不同的方法,但似乎没有显示日期,它是空的。

var idag = new Date();
$("#txtFrom").datepicker("setDate", idag - 2);
$("#txtTom").datepicker("setDate", idag);
$("#txtFrom").datepicker("refresh");
$("#txtTom").datepicker("refresh");

【问题讨论】:

  • 我不确定您是否需要调用refresh 方法。您能否提供更广泛的使用范围?您打算什么时候设置日期?
  • @Andreas:我想我完全按照它,但没有结果。这就是我问的原因。
  • @Richard:刷新只是试图将文本输出的一种方式。
  • @kaze 我强烈建议不要在您的代码中使用瑞典语(或任何其他非英语语言)。由于几乎所有不是由您编写的内容都是用英语编写的,因此您将混合使用多种语言,并且您使非瑞典语使用者难以维护您的代码。我没有看到使用英语的不利之处,因为祝你好运找到不会说英语的瑞典程序员:) </rant>

标签: javascript jquery jquery-ui datepicker


【解决方案1】:

这个简单的example 对我有用...

HTML

<input type="text" id="datepicker">

JavaScript

var $datepicker = $('#datepicker');
$datepicker.datepicker();
$datepicker.datepicker('setDate', new Date());

我可以通过查看@ the manual 并阅读setDate 的解释来创建它:

.datepicker("setDate", 日期)
设置日期选择器的当前日期。新日期可能是 Date 当前日期格式的对象或字符串(例如 '01/26/2009'),a 从今天开始的天数(例如 +7)或一串值和句点 ('y' 表示年,'m' 表示月,'w' 表示周,'d' 表示天,例如 '+1m +7d'),或 null 以清除所选日期。

【讨论】:

  • 你说得对。我的错误是我认为我可以在初始化选择器的同时进行,即只有 $("#txtTom").datepicker("setDate", idag) 就足够了,不需要 (" #txtTom").datepicker() 优先。
  • 其实你可以在日期选择器的焦点事件上做到这一点,这就是我所做的: $(document).on('focus', ".datepicker", function () { $(this) .datepicker(); $(this).datepicker('setDate', new Date($(this).val())); //设置值 });我这样做是因为我动态添加日期选择器,因此它会从你选择它的那一刻起将任何带有日期选择器类的输入修改为实际的日期选择器
  • 这将触发 'changeDate' 事件,这可能不是您在每次页面加载时想要的。
  • 确保将 type 属性设置为“text”而不是“date”。 datepicker('setDate', date) 不适用于“日期”类型。
【解决方案2】:

您可以在 HTML 中设置值,然后初始化 datepicker 以开始/突出显示实际日期

<input name="datefrom" type="text" class="datepicker" value="20-1-2011">
<input name="dateto" type="text" class="datepicker" value="01-01-2012">
<input name="dateto2" type="text" class="datepicker" >


$(".datepicker").each(function() {    
    $(this).datepicker('setDate', $(this).val());
});

以上内容甚至适用于丹麦日期格式

http://jsfiddle.net/DDsBP/2/

【讨论】:

  • $("".datepicker"").each(function() { var dateValue = $(this).attr(""value""); if (dateValue != """" ){ $(this).datepicker(""setDate"", dateValue); } });
【解决方案3】:

来自jQuery

如果该字段为空白,则设置在首次打开时突出显示的日期。通过 Date 对象或当前 dateFormat 中的字符串指定实际日期,或从今天开始的天数(例如 +7)或值和句点字符串('y' 表示年份,'m' 表示月份, 'w' 表示几周,'d' 表示几天,例如 '+1m +7d'),或者 null 表示今天。

代码示例

使用指定的 defaultDate 选项初始化日期选择器。

$(".selector").datepicker({ defaultDate: +7 });

在初始化之后获取或设置 defaultDate 选项。

//getter
var defaultDate = $(".selector").datepicker("option", "defaultDate");
//setter
$(".selector").datepicker("option", "defaultDate", +7);

日期选择器初始化后,您还应该能够设置日期:

$(/*selector*/).datepicker("setDate" , date)

【讨论】:

    【解决方案4】:

    使用此代码会对您有所帮助。

    <script>
    InitializeDate();
    </script>
    
    
    
    
    <input type="text" id="txtFromDate" class="datepicker calendar-icon" placeholder="From Date" style="width: 100px; margin-right: 10px; padding: 0px 0px 0px 7px;">
            <input type="text" id="txtToDate" class="datepicker calendar-icon" placeholder="To Date" style="width: 100px; margin-right: 10px; padding: 0px 0px 0px 7px;">
    
    
    function InitializeDate() {
        var date = new Date();
        var dd = date.getDate();             
        var mm = date.getMonth() + 1;
        var yyyy = date.getFullYear();
    
        var ToDate = mm + '/' + dd + '/' + yyyy;
        var FromDate = mm + '/01/' + yyyy;
        $('#txtToDate').datepicker('setDate', ToDate);
        $('#txtFromDate').datepicker('setDate', FromDate);
    }
    

    【讨论】:

    • 请在发布代码 sn-ps 时添加一些直觉。
    【解决方案5】:

    使用setDate

    .datepicker( "setDate" , date )
    

    设置日期选择器的当前日期。新日期可以是 Date 对象或当前日期格式的字符串(例如 '01/26/2009')、从今天算起的天数(例如 +7)或一串值和句点('y' 表示年,'m' 表示月,'w' 表示周,'d' 表示天,例如 '+1m +7d'),或 null 以清除所选日期。

    【讨论】:

    【解决方案6】:

    我不完全确定我是否理解您的问题,但您似乎正在尝试为输入类型 Date 设置值。

    如果您想为 输入类型 'Date' 设置一个值,则必须将其格式化为“yyyy-MM-dd"(注:大写 MM 表示月份,小写 mm 表示分钟)。否则,它将清除该值并将日期选择器留空。

    假设您有一个名为“DateChanger”的按钮,并且您希望在单击它时将日期选择器设置为“2012 年 12 月 22 日”。

    <script>
        $(document).ready(function () {
            $('#DateChanger').click(function() {
                 $('#dtFrom').val("2012-12-22");
            });
        });
    </script>
    <input type="date" id="dtFrom" name="dtFrom" />
    <button id="DateChanger">Click</button>
    

    记得包含 JQuery 引用。

    【讨论】:

    • 用户请求 jQuery datepicker 插件。
    【解决方案7】:

    在初始化代码后使用它来获取当前日期(日期选择器格式):

    $(".ui-datepicker-today").trigger("click");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-23
      • 2016-12-23
      • 2017-05-20
      • 2020-01-19
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多