jquery datepicker onselect的问题

Posted

技术标签:

【中文标题】jquery datepicker onselect的问题【英文标题】:problem with jquery datepicker onselect 【发布时间】:2010-11-19 10:46:18 【问题描述】:

按照 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 只是没有工作,所以我回到基础仍然无法工作,有人知道我做错了什么吗??

【问题讨论】:

你能把你的html代码粘贴到你创建日期选择器的地方吗? 【参考方案1】:

您没有正确使用 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 */ );

【讨论】:

$("#datepicker").datepicker('destroy') 然后设置一个具有不同选项的新选项是另一种可能性 - 尽管在这种情况下,只需摆脱第一次初始化。 大赢!你的第一个答案 $('#datepicker').datepicker('option', 'onSelect', function() /* do stuff */ );对我来说只是把戏。非常感谢! $('#datepicker').datepicker('option', 'onSelect', function() /* do stuff */ );你的回答对我有用,谢谢 在这里检查我的问题-,我认为这是drupal.behavior 问题,但您的技巧似乎对我有用drupal.stackexchange.com/questions/133694/…...如果您愿意,可以在此处添加答案-@Ken Browning 【参考方案2】:

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

$("#datepicker").datepicker(
    dateFormat: 'dd/mm/yy'
).on("changeDate", function (e) 
    alert("Working");
);

【讨论】:

尝试所有变体,这是唯一有效的变体谢谢@hamzeh 如果有人对可能因为您使用 github.com/eternicode/bootstrap-datepicker 的方法有问题,那么这就是他们使用的方式 "changeDate" 也适合我。 "option" "onSelect" 和其他变体不起作用。谢谢! 谢谢..它节省了我的时间。"changeDate" 才有效!【参考方案3】:

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

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

【讨论】:

自从上次回答此问题以来,事件名称不同。有关事件和示例,请参见此处:bootstrap-datepicker.readthedocs.io/en/latest/events.html【参考方案4】:

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

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

将此changeDate() 方法称为-

<div type="text" id="datepicker" onchange ="javascript:changeDate();" />

【讨论】:

以上是关于jquery datepicker onselect的问题的主要内容,如果未能解决你的问题,请参考以下文章

jquery 中datepicker 插件 问题

jQuery UI 中的 datepicker( )方法

jQuery Datepicker日期控件

javascript [js - datepicker] jquery datepicker #js

jQuery datepicker 函数:datepicker 不是函数

使用 jquery 验证和 jquery-ui datepicker