14

按照 jquery 网站上的基本 onSelect 规范,我尝试了以下代码:

<!DOCTYPE html>
<html>
<head>
  <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.datepicker.js"></script>
  <script type="text/javascript">
  $(document).ready(function(){
    $("#datepicker").datepicker();


$('#datepicker').datepicker({
   onSelect: function(dateText, inst) { alert("Working"); }
});



  });

  </script>
</head>
<body style="font-size:62.5%;">

<div type="text" id="datepicker"></div>

</body>
</html>

并且不能让它工作!最初一直试图让一个更复杂的东西工作,但 onSelect 只是没有工作,所以我回到基础,仍然没有工作,有人知道我做错了什么吗?

4

4 回答 4

44

您没有正确使用 api。不要把它弄坏,一开始它会让人困惑。

这两行都告诉 datepicker 小部件在元素上初始化 datepicker:

$("#datepicker").datepicker();
$('#datepicker').datepicker({
   onSelect: function(dateText, inst) { alert("Working"); }
});

您可以删除第一个,因为除了阻止第二个产生任何影响之外,它没有做任何事情。

如果要在初始化小部件后更改其中一个选项的值,则需要使用此 api:

$('#datepicker').datepicker('option', 'onSelect', function() { /* do stuff */ });

或者,您可以使用 jQuery 的bind函数附加一个处理程序:

$('#datepicker').bind('onSelect', function() { /* do stuff */ });
于 2009-08-13T20:33:26.683 回答
30

选择日期时此代码是否必须工作:

$("#datepicker").datepicker({
    dateFormat: 'dd/mm/yy'
}).on("changeDate", function (e) {
    alert("Working");
});
于 2016-01-05T09:27:22.107 回答
13

您可以尝试删除该$("#datepicker").datepicker()行上方的第二个,留​​下:

$(document).ready(function(){
    $('#datepicker').datepicker({ onSelect: function(dateText, inst) { alert("Working"); } });
});
于 2009-08-13T20:25:16.593 回答
0

jQuery datepicker 的 onSelect 有时不起作用,但您可以通过在您的类型的onchange事件上调用方法来绕过它。input

function changeDate() {
   $("#datepicker").datepicker(
        "change",
        { 
            alert("I am working!!");
        }
    );
}

将此changeDate()方法称为-

<div type="text" id="datepicker" onchange ="javascript:changeDate();" />
于 2016-01-04T13:17:28.063 回答