我有一个非常简单的jQuery Datepicker日历:

$(document).ready(function(){
    $("#date_pretty").datepicker({ 
    });
});

当然还有HTML ...

<input type="text" size="10" value="" id="date_pretty"/>

当用户调出日历时,今天的日期很好地突出显示,但是如何让jQuery在今天的页面加载日期之前预先填充文本框本身,而无需用户做任何事情? 99%的时间,今天的日期默认值将是他们想要的。

有帮助吗?

解决方案

更新:有报道称Chrome浏览器不再有效。

这很简洁,完成了工作(已废弃):

$(".date-pick").datepicker('setDate', new Date());

这不太简洁,利用链接可以让它在chrome中工作(2019年) -06-04):

$(".date-pick").datepicker().datepicker('setDate', new Date());

其他提示

您必须首先调用datepicker()&gt; 然后使用'setDate'来获取当前日期。

$(".date-pick").datepicker();
$(".date-pick").datepicker("setDate", new Date());

在你的datepicker初始化之后对你的setDate方法调用进行链接,如对此答案的评论中所述

$('.date-pick').datepicker({ /* optional option parameters... */ })
               .datepicker("setDate", new Date());

只需

$(".date-pick").datepicker("setDate", new Date());

注意 描述了可接受的setDate参数此处

var myDate = new Date();
var prettyDate =(myDate.getMonth()+1) + '/' + myDate.getDate() + '/' +
        myDate.getFullYear();
$("#date_pretty").val(prettyDate);

似乎有效,但可能有更好的方法......

setDate() 方法设定日期并更新相关的控件。方法如下:

$("#datepicker1").datepicker({
    dateFormat: "yy-mm-dd"
}).datepicker("setDate", "0");

演示

如文档中所述, setDate()很乐意接受JavaScript Date对象,数字或字符串:

  

新日期可以是Date对象或当前日期的字符串   格式(例如'01 / 26/2009'),从今天开始的几天(例如+7)或a   一串价值观和期间('y'表示年份,'m'表示月份,'w'表示   几周,'d'天,例如'+ 1m + 7d'),或null以清除所选   日期。

如果您想知道,请设置 defaultDate 构造函数中的属性不会更新关联的控件。

今天设为

$('#date_pretty').datepicker('setDate', '+0');

昨天设为

$('#date_pretty').datepicker('setDate', '-1');

依据 之前 之后 今天的日期

请参阅 jQuery UI&#8250;方法&#8250;的setDate

解决方案是:

$(document).ready(function(){
    $("#date_pretty").datepicker({ 
    });
    var myDate = new Date();
    var month = myDate.getMonth() + 1;
    var prettyDate = month + '/' + myDate.getDate() + '/' + myDate.getFullYear();
    $("#date_pretty").val(prettyDate);
});

谢谢ashghost!

此代码将确保使用您的日期选择器格式:

$('#date-selector').datepicker('setDate', new Date());

无需重新应用格式,它会在datepicker初始化时使用datepicker预定义的一个(如果已经分配了它!);)

这个对我有用。

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

David K Egghead的代码完美无缺,谢谢!

$(".date-pick").datepicker(); 
$(".date-pick").datepicker("setDate", new Date()); 

我还设法修剪了一下它也有效:

$(".date-pick").datepicker().datepicker("setDate", new Date()); 
$('input[name*="date"]').datepicker({
        dateFormat: 'dd-mm-yy',
        changeMonth: true,
        changeYear: true,
        beforeShow: function(input, instance) { 
            $(input).datepicker('setDate', new Date());
        }
    });

为了在加载时将datepicker设置为某个默认时间(在我的情况下是当前日期),然后可以选择另一个日期语法:

    $(function() { 
        // initialize the datapicker
        $("#date").datepicker();

        // set the time
        var currentDate = new Date();
        $("#date").datepicker("setDate",currentDate);

    //  set the options for the button  
        $("#date").datepicker("option",{
            dateFormat: 'dd/mm',
            showOn: "button",
          // whatever option Or event you want 
        });
  });

要预先填充日期,首先必须初始化datepicker,然后传递setDate参数值。

$("#date_pretty").datepicker().datepicker("setDate", new Date());

以为我会加两分钱。选择器正在添加/更新表单中使用,因此如果编辑现有记录,则需要显示来自数据库的日期,否则显示今天的日期。以下对我来说很好:

    $( "#datepicker" ).datepicker();
    <?php if (!empty($oneEVENT['start_ts'])): ?>
       $( "#datepicker" ).datepicker( "setDate", "<?php echo $startDATE; ?>" );
    <? else: ?>
       $("#datepicker").datepicker('setDate', new Date());   
    <?php endif; ?>
  });

你有两个选择:

选项A)标记为“有效”在您的日历中,仅当您单击输入时。

<强>的js

$('input.datepicker').datepicker(
                        {   
                            changeMonth: false,
                            changeYear: false,
                            beforeShow: function(input, instance) { 
                                $(input).datepicker('setDate', new Date());
                            }
                        }                         
                     );

<强>的CSS

div.ui-datepicker table.ui-datepicker-calendar .ui-state-active,
        div.ui-datepicker table.ui-datepicker-calendar .ui-widget-content .ui-state-active  {
            background: #1ABC9C;
            border-radius: 50%;
            color: #fff;
            cursor: pointer;
            display: inline-block;
            width: 24px; height: 24px;
        }​

选项B)默认情况下输入今天。 你必须首先填充datepicker。

$("input.datepicker").datepicker().datepicker("setDate", new Date());
var prettyDate = $.datepicker.formatDate('dd-M-yy', new Date());
alert(prettyDate);

将prettyDate指定为必要的控件。

试试这个

$(this).datepicker("destroy").datepicker({
            changeMonth: false, changeYear: false,defaultDate:new Date(), dateFormat: "dd-mm-yy",  showOn: "focus", yearRange: "-5:+10"
        }).focus();

这对我来说效果更好,因为有时我会遇到麻烦调用 .datepicker('setDate',new Date()); ,因为如果我已经使用参数配置了datepicker,它就会混乱。

$("#myDateText").val(moment(new Date()).format('DD/MM/YYYY'));
$(function()
{
$('.date-pick').datePicker().val(new Date().asString()).trigger('change');
});

来源: http://www.kelvinluck.com /assets/jquery/datePicker/v2/demo/datePickerDefaultToday.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top