Подтвердить что ты не робот

Проблема с jquery datepicker onselect

Следуя основной спецификации onSelect на сайте jquery, я попробовал следующий код:

<!DOCTYPE html>
<html>
<head>
  <link type="text/css" href="#" onclick="location.href='http://jqueryui.com/latest/themes/base/ui.all.css'; return false;" 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 просто не работал, поэтому я вернулся к основам и до сих пор не работает, кто-нибудь знает, что я делаю неправильно?

4b9b3361

Ответ 1

Вы можете попытаться удалить вторую $("#datepicker").datepicker() сразу над этой строкой, оставив:

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

Ответ 2

Вы не используете 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 */ });

Ответ 3

Должен ли этот код работать при выборе даты:

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

Ответ 4

jQuery datepicker onSelect не работает иногда, но вы можете просто обойти его, вызвав метод в onchange событии вашего типа input.

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

Вызвать этот метод changeDate() как -

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