Я пытаюсь использовать datetimepicker из jquery. Я хочу очистить некоторые поля ввода всякий раз, когда вы выбираете новую дату, но мой onSelect на самом деле не работает. Во-первых, он запускается только один раз при загрузке документа. После этого он никогда не срабатывает снова. Во-вторых, onSelect не работают с анонимными функциями.
Это не работает
$(document).ready(function() { $(function () { $('#dateValue').datetimepicker({ format: 'YYYY-MM-DD', onSelect: function() { console.log("testing"); } }); }); });
Это работает, но срабатывает только при загрузке документа, затем никогда больше
$(document).ready(function() { $(function () { $('#dateValue').datetimepicker({ format: 'YYYY-MM-DD', onSelect: console.log("testing") }); }); });
Импортированные файлы в моем теге head в index.html
<head> <meta charset="UTF-8"> <title>....</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.js"></script> <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script> <script type="text/javascript" src="script.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/> <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css" rel="stylesheet"/> <link rel="stylesheet" href="myCSS.css"> </head>
РЕДАКТИРОВАТЬ: я дурак и забыл дать сообщение об ошибке
Uncaught TypeError: option onSelect is not recognized! at Function.<anonymous> (bootstrap-datetimepicker.min.js:8) at Function.each (jquery.min.js:2) at Object.l.options (bootstrap-datetimepicker.min.js:8) at c (bootstrap-datetimepicker.min.js:9) at HTMLInputElement.<anonymous> (bootstrap-datetimepicker.min.js:9) at Function.each (jquery.min.js:2) at n.fn.init.each (jquery.min.js:2) at n.fn.init.a.fn.datetimepicker (bootstrap-datetimepicker.min.js:9) at HTMLDocument.<anonymous> (script.js:3) at j (jquery.min.js:2)
Вы должны использовать dp.change событие, которое сработало при изменении даты.
dp.change
$('#dateValue').datetimepicker({ format: 'YYYY-MM-DD', }); $("#dateValue").on("dp.change", function() { console.log("testing"); });
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.js"></script> <script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" /> <link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css" rel="stylesheet" /> <div class='input-group date' id='dateValue'> <input type='text' class="form-control" /> <span class="input-group-addon"> <span class="glyphicon glyphicon-calendar"></span> </span> </div>
Вы используете Bootstrap datetimepicker component. Событие onselect не является частью этого.
datetimepicker
onselect
Вы должны использовать
$("#dateValue").on("dp.change", function (e) { //your code });
Примерьте заявление
$("#dateValue").on("onselect",function(){ console.log("testing"); });
http://api.jquery.com/on/