2

我对 Kendo UI 日期选择器有疑问,它不会通过 value 属性显示已设置的值。这是标记:

<input data-kendoDatePicker="true" value="9/18/2013 12:00:00 AM"/>

<script>
    $(':input[data-kendoDatePicker=true]').kendoDatePicker({
        format: 'dd MMM yyyy'
    });
</script>

当页面加载时,它不会显示任何值。但是,在 DOM 中查看为输入设置的值,它就是不接受它!When a new value is selected it will be displayed and formatted. 如果我删除格式,它会按预期工作

4

3 回答 3

5

@Bobby_D 是对的,问题是您没有指定正确的日期格式:MM/dd/yyy.

顺便说一句:您知道您可以将其定义为:

<input data-role="datepicker" value="9/18/2013 12:34:56 AM" data-format="MM/dd/yyyy"/>
<script>
    kendo.init($("input"));
</script>   

基本上,如果您可以在 HTML 中设置所有属性,input您只需调用一次即可kendo.init初始化元素。所以,你甚至可以做kendo.init($("body"));. 这在从 HTML 初始化大多数组件时非常有用。

编辑:Kendo DatePicker 中有两个不同的选项:

  1. format:指定格式,用于格式化输入中显示的 DatePicker 的值。该格式也将用于解析输入。
  2. parseFormats:指定日期格式列表,用于解析使用 value() 方法或直接用户输入设置的值。如果未设置,将使用格式的值。请注意,格式选项始终用于解析过程。

在我看来,您希望以一种格式接收日期,然后以另一种格式显示它们。然后你应该使用parseFormats你收到的可能的(可能不止一个)和format小部件中显示的那些。

您的代码将是:

$(':input[data-kendoDatePicker=true]').kendoDatePicker({
    format:        "dd MMM yyyy",
    parseFormats : [ "MM/dd/yyyy" ]
});

此处修改的代码:http: //jsfiddle.net/OnaBai/TQnny/1/

或以其他格式:

<input id="datapicker" data-role="datepicker" value="9/18/2013 12:00:00 AM" data-format="dd MMM yyyy" data-parse-formats="MM/dd/yyyy"/>

和用于初始化它的 JS:

kendo.init($("init"));

此处修改的代码:http: //jsfiddle.net/OnaBai/TQnny/2/

于 2013-09-30T12:48:31.260 回答
1

您需要提供您在值中提供的日期的正确格式。例如,您以美国格式提供日期并希望 kendo 以英国格式阅读它,它无法拨打电话,例如。月与日是模棱两可的。

http://jsfiddle.net/vojtiik/8CCqR/1/

   $(':input[data-kendoDatePicker=true]').kendoDatePicker({
       format: "MM/dd/yyyy"
//     format: "MM/dd/yyyy hh:mm:ss tt"
    });

日期格式

于 2013-09-30T13:07:58.560 回答
0

如果您使用 AngularJS 与 Kendo UI 的集成,您可以尝试以下代码片段:

HTML:

<input kendo-date-time-picker ng-model="dateStr" k-ng-model="date"/>

JS:

$scope.date = new Date();
$scope.dateStr = $filter('date')($scope.date, "yyyy-MM-ddTHH:mm:ss");

PS 不要忘记在控制器依赖项列表中指定 $filter 对象

于 2015-12-14T17:11:18.447 回答