Skip to content

Commit b75f8fd

Browse files
committed
Issue 185: Added destroy() method to Dateinput
1 parent 28e520e commit b75f8fd

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

src/dateinput/dateinput.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,8 @@
186186
value = input.attr("data-value") || conf.value || input.val(),
187187
min = input.attr("min") || conf.min,
188188
max = input.attr("max") || conf.max,
189-
opened;
189+
opened,
190+
original;
190191

191192
// zero min is not undefined
192193
if (min === 0) { min = "0"; }
@@ -202,11 +203,14 @@
202203

203204
// Replace built-in date input: NOTE: input.attr("type", "text") throws exception by the browser
204205
if (input.attr("type") == 'date') {
206+
207+
original = input.clone();
205208
var tmp = $("<input/>");
206209

207210
$.each("class,disabled,id,maxlength,name,readonly,required,size,style,tabindex,title,value".split(","), function(i, attr) {
208211
tmp.attr(attr, input.attr(attr));
209-
});
212+
});
213+
210214
input.replaceWith(tmp);
211215
input = tmp;
212216
}
@@ -624,8 +628,15 @@
624628

625629
addYear: function(amount) {
626630
return this.setValue(currYear + (amount || 1), currMonth, currDay);
631+
},
632+
633+
destroy: function() {
634+
input.add(document).unbind("click.d").unbind("keydown.d");
635+
root.add(trigger).remove();
636+
input.removeData("dateinput").removeClass(css.input);
637+
if (original) { input.replaceWith(original); }
627638
},
628-
639+
629640
hide: function(e) {
630641

631642
if (opened) {
@@ -688,7 +699,7 @@
688699
if (!conf.editable) {
689700

690701
// show dateinput & assign keyboard shortcuts
691-
input.bind("focus click", self.show).keydown(function(e) {
702+
input.bind("focus.d click.d", self.show).keydown(function(e) {
692703

693704
var key = e.keyCode;
694705

0 commit comments

Comments
 (0)