0

我的日期时间选择器有问题。

我在view.htm该负载处有 JavaScript 代码view_part.htm作为搜索结果。

view_part.htm,我使用 jQuery UI 创建了日期时间选择器,但它没有显示出来。我在 处编写了 jQuery 代码,view.htm但它仍然无法正常工作。

这是我的代码:

for(i=0;i<sum;i++){
    $("#TGL_APPROVE_"+i).datepicker();
    $("#TGL_APPROVE_"+i).datepicker( "option", "dateFormat", "yy-mm-dd" );
}

这是我的看法:

http://i47.tinypic.com/xu452.jpg

4

5 回答 5

0

问题看起来是因为您在 view_part.html 的内容实际进入 DOM 之前绑定了 datepicker。

您需要做的是在它被加载(通过 AJAX)并插入 DOM之后绑定它。


更新

$("#cont_list").load('<?=HOME?><?=APPID?>/cont_list?no_req={$row_request.NO_REQU‌​‌​EST} #list', function(data) {

   // bind datepicker here. 
   // Ensure 'sum' has a value before doing so.
   for(var i=0;i<sum;i++){
      $("#TGL_APPROVE_"+i).datepicker();
      $("#TGL_APPROVE_"+i).datepicker( "option", "dateFormat", "yy-mm-dd" );
   }
}); 

更好的是,如果您可以为要绑定 datepicker 的所有元素提供一个类,它会更容易。例如,如果您指定class="attachdp"这些元素,则将for循环替换为:

$(".attachdp').datepicker({ dateFormat: "yy-mm-dd" });
于 2012-09-26T10:34:43.773 回答
0

尝试使用 FireFox 的 Firebug 插件来查看任何 javascript 错误。

但是,要解决您的问题,如果您给这些输入一个类。让我们说“hasDatePicker”。

然后在您通过 AJAX 加载内容之后(或者您是否使用 iFrame?)

$(".hasDatePicker").datepicker( "option", "dateFormat", "yy-mm-dd");
于 2012-09-26T10:36:24.987 回答
0

将类添加到应支持数据选择器插件的所有文件。你将能够以更简单的方式做到这一点:

$(function() {
   $(".datapicker").datepicker();
 }

这是document.ready()的快捷方式,所以当整个页面加载完毕后,会绑定datapickers

于 2012-09-26T10:36:25.647 回答
0

你怎么称呼 view_part.htm ?我假设通过 AJAX?

如果是 - 您应该在 ajax 回调中或在 view_part.htm 完全加载后调用 datepicker()。例如在 view_part 中:

<script>
$(function(){
for(i=0;i<sum;i++){
    $("#TGL_APPROVE_"+i).datepicker();
    $("#TGL_APPROVE_"+i).datepicker( "option", "dateFormat", "yy-mm-dd" );
}
});
</script>
于 2012-09-26T10:38:37.270 回答
0

我不知道您的变量isum在这里指的是什么,但根据您评论中的代码,您需要执行以下操作:

$("#cont_list").load('<?=HOME?><?=APPID?>/cont_list?no_req={$row_request.NO_REQU‌​EST} #list', function(data) { 
    for(i=0;i<sum;i++){
        $("#TGL_APPROVE_"+i).datepicker( "option", "dateFormat", "yy-mm-dd" );
    }
});

此处的回调确保datepicker在添加到 DOM 时绑定到您的元素。

于 2012-09-26T10:46:30.480 回答