Skip to content

Commit 88d3c69

Browse files
committed
Datepicker: Update icon-trigger demo, build a custom trigger. Prevent the datepicker from opening with a new cancellable beforeOpen event. Cancel = don't open
1 parent 7adf5bf commit 88d3c69

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

demos/datepicker/icon-trigger.html

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,21 @@
1616
<link rel="stylesheet" href="../demos.css">
1717
<script>
1818
$(function() {
19-
$( "#datepicker" ).datepicker({
20-
showOn: "button",
21-
buttonImage: "images/calendar.gif",
22-
buttonImageOnly: true
19+
var allowOpen = false;
20+
var datepicker = $( "#datepicker" ).datepicker({
21+
beforeOpen: function() {
22+
return allowOpen;
23+
}
2324
});
25+
$( "<img src='images/calendar.gif' alt='Open Datepicker'>")
26+
.insertAfter( datepicker )
27+
.click(function() {
28+
allowOpen = true;
29+
datepicker.focus();
30+
setTimeout(function() {
31+
allowOpen = false;
32+
});
33+
});
2434
});
2535
</script>
2636
</head>

ui/jquery.ui.datepicker.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ $.widget( "ui.datepicker", {
3737
hide: true,
3838

3939
// callbacks
40+
beforeOpen: null,
4041
close: null,
4142
open: null,
4243
select: null
@@ -527,6 +528,9 @@ $.widget( "ui.datepicker", {
527528
if ( this.inline || this.isOpen ) {
528529
return;
529530
}
531+
if ( this._trigger( "beforeOpen", event ) === false ) {
532+
return;
533+
}
530534

531535
// TODO explain this
532536
this.date = $.date( this.element.val(), this.options.dateFormat );

0 commit comments

Comments
 (0)