【问题标题】:JQuery datepicker init the selector/fieldJQuery datepicker 初始化选择器/字段
【发布时间】:2010-10-25 13:46:01
【问题描述】:

是否可以使用与使用日期选择器选择相同格式的日期填充输入字段?例如,在我使用 datepicker 选择日期之前,我的输入字段中有一个值(例如 new Date()),我希望它具有与我选择它相同的格式。

谢谢

库库达斯

【问题讨论】:

    标签: jquery datepicker


    【解决方案1】:

    查看demo site,new Date().asString() 用于选择今天,它的格式与预期的一样。

    $('.date-pick').datePicker().val(new Date().asString()).trigger('change');
    

    编辑:

    您必须确保正确设置了 Date.format。这是德语日期格式的一个工作示例:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8">
        <title>jQuery datePicker simple datePicker demo</title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript" src="http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/scripts/date.js"></script>
        <script type="text/javascript" src="http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/scripts/jquery.datePicker.js"></script>
        <link rel="stylesheet" type="text/css" media="screen" href="http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/styles/datePicker.css">
    
        <script type="text/javascript" charset="utf-8">
    
            Date.format = 'dd.mm.yyyy';
    
            $(function(){
                $('.date-pick').datePicker()
                    .val(new Date().asString()).trigger('change');
            });
        </script>
    </head>
    <body>
        <label for="date1">Date 1:</label>
        <input name="date1" id="date1" class="date-pick" />
    </body>
    </html>
    

    注意,脚本http://www.kelvinluck.com/assets/jquery/datePicker/v2/demo/scripts/date.js 扩展了 Date.prototype 并将“Date.format”设置为“dd/mm/yyyy”。我用 'dd.mm.yyyy' 覆盖它。

    【讨论】:

    • 我试过了,但我的输入字段是空的,但是 .val(new Date()) 有效,但不是我的 datepicker 使用的格式。
    • 我已经使用 CSS 类名和onSelect 事件处理程序将 datepicker 附加到一些 HTML 文本框我需要知道当前 onSelect 发生的选择器类名.. 元素应用了 2 个其他类除了我用来附加日期选择器的那个
    • @techie_28 我不明白你在说什么/问什么。您尝试了我的示例,但对您不起作用?你能提供一个 jsfiddle 或 codepen 或类似的吗?
    • @TimBüthe say 3 个盒子有 datepicker jQuery('.box1,.box2,.box3').datepicker({onSelect:function(){...}});。每个盒子还有其他类 class="text box1 float" 现在在 onSelect 中编写逻辑时我需要确定当前盒子是 box1、box2 还是盒子3?
    • @TimBüthe 我检查了实例对象转储,其中有显示所有类的值,但没有像 selector:box2 等这样的值
    【解决方案2】:

    我不确定我是否真的理解问题所在?

    $(document).ready(function() {
        $('#date_field').datepicker({
            dateFormat: 'yy-mm-dd',
            constrainInput: false});
    });
    

    并且只在你拥有的输入字段中有一个标准值:

    <input name="date_field" id="date_field" value="2008-04-16" />
    

    或者你可以在 document.ready 中设置值

    $('#date_field').val("2008-04-16");
    

    添加日期选择器后。 不知道你是不是这个意思?

    好的,在您发表评论后,我感觉您想要类似的东西:

    var my_date = new Date(); //This is the Date object that you're getting from external source
    $('#date_field').val(my_date.getFullYear()+"/"+my_date.getMonth()+"/"+my_date.getDate());
    

    这应该将字段中的值设置为 2008/04/26(或其他)

    【讨论】:

    • 该值来自外部系统,其格式可能类似于 2009 年 5 月 12 日星期二 16:32:05 GMT+0200,但在选择格式后,例如 05/12/09。基本上我希望在我的输入字段中填充的值具有与我从日期选择器中选择它相同的格式。我对这些东西有点陌生,所以我不知道如何更好地解释我希望这更清楚。
    • 谢谢,是否可以将此 my_date.getFullYear()+"/"+my_date.getMonth()+"/"+my_date.getDate() 更改为调用相同的格式/解析方法数据选择器会使用 ?
    • 我想我需要使用这个: var dateFormat = $('.selector').datepicker('option', 'dateFormat');我在文档中阅读以获取我的日期选择器的格式样式。之后我应该能够格式化和设置值,但不知何故我得到了让 dateFormat 不起作用的代码。
    • 似乎使用 var dateFormat = $('.selector').datepicker('option', 'dateFormat');我得到一个最有可能包含我需要的信息的对象。我可能可以像这样格式化日期 $.datepicker.formatDate(dateformat, new Date(2007, 1 - 1, 26));但是这不起作用,我想我需要该选项的实际值有什么建议吗?
    猜你喜欢
    • 2012-09-26
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2012-12-18
    • 1970-01-01
    • 2010-12-27
    • 1970-01-01
    相关资源
    最近更新 更多