-1

我有一些没有被执行的 jQuery 代码。代码块看起来像

jQuery(document).ready(function() {
$('#Start').datepicker();
$('#End').datepicker();
$('#End').val('date');
$('#Start').val('start');
alert('hello');
}); 

但它没有在StartEnd文本框上应用日期选择器。请注意,在此脚本之前添加了 jQuery 和 jQuery.ui 文件。在这个代码块中,甚至最后一行 ( alert) 都没有被执行。

我可以在 Firefox 控制台中看到错误,uncaught exception: Invalid dimensions for plot, width = null, height = null但它没有告诉我错误的位置。

可能是什么问题呢?为什么这段代码没有运行?如何调试这个?

编辑1: 我已将代码更改为以下

jQuery(document).ready(function() {
        //$('#Start').datepicker();
        //$('#End').datepicker();
        //$('#End').val('date');
        //$('#Start').val('start');
        alert('hello inside');
    });
    alert("hello outside");

现在只有两个警报(注释的其余行)外部就绪函数执行警报,但内部没有执行。

4

2 回答 2

-1

使用日期选择器,我不确定您是否可以在初始化日期选择器后设置字符串值。

尝试删除这两行:

$('#End').val('date');
$('#Start').val('start');
于 2012-12-21T20:08:52.770 回答
-1

我从未使用过 Datepicker,但我认为如果您将这些行注释掉,它将起作用:

$('#End').val('date');
$('#Start').val('start');

大多数jquery是异步的,即。上面的两行将在用户选择日期之前执行(因此缺少值)。所以你需要包括一个这样的回调函数(快速谷歌)

jQuery datepicker,onSelect 不起作用

    $('#End').datepicker( {
        onSelect: function(date) {
            alert(date);        }
    });

编辑:

这适用于 jsfiddle(http://jsfiddle.net/q6UFc/):

HTML:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script>
<input type="text" id="end" name="end" />

Javascript:

$(document).ready(function () {          
$('#end').datepicker( {
            onSelect: function(date) {
                alert(date);        }
        });

})
于 2012-12-21T20:14:59.170 回答