Ответ 1
Вы можете попытаться удалить вторую $("#datepicker").datepicker()
сразу над этой строкой, оставив:
$(document).ready(function(){
$('#datepicker').datepicker({ onSelect: function(dateText, inst) { alert("Working"); } });
});
Следуя основной спецификации 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 просто не работал, поэтому я вернулся к основам и до сих пор не работает, кто-нибудь знает, что я делаю неправильно?
Вы можете попытаться удалить вторую $("#datepicker").datepicker()
сразу над этой строкой, оставив:
$(document).ready(function(){
$('#datepicker').datepicker({ onSelect: function(dateText, inst) { alert("Working"); } });
});
Вы не используете 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({
dateFormat: 'dd/mm/yy'
}).on("changeDate", function (e) {
alert("Working");
});
jQuery datepicker onSelect не работает иногда, но вы можете просто обойти его, вызвав метод в onchange
событии вашего типа input
.
function changeDate() {
$("#datepicker").datepicker(
"change",
{
alert("I am working!!");
}
);
}
Вызвать этот метод changeDate()
как -
<div type="text" id="datepicker" onchange ="javascript:changeDate();" />