Datepicker: prevent datepicker initialization on empty jquery collection and add unit test. Fixed #6976 - datepicker creates extra dom element with empty object

(cherry picked from commit 5c3dc7d48a)
This commit is contained in:
Dan Heberden 2011-02-15 10:15:46 -08:00 committed by Scott González
parent 685ac7a042
commit ab7a5b441a
2 changed files with 11 additions and 1 deletions

View File

@ -47,6 +47,11 @@ module("datepicker: core", {
}
});
test( "widget method - empty collection", function() {
$( "#nonExist" ).datepicker(); // should create nothing
ok( !$( "#ui-datepicker-div" ).length, "Non init on empty collection" );
});
test("widget method", function() {
var actual = $("#inp").datepicker().datepicker("widget")[0];
same($("body > #ui-datepicker-div:last-child")[0], actual);

View File

@ -1727,6 +1727,11 @@ function isArray(a) {
@return jQuery object */
$.fn.datepicker = function(options){
/* Verify an empty collection wasn't passed - Fixes #6976 */
if ( !this.length ) {
return this;
}
/* Initialise the date picker. */
if (!$.datepicker.initialized) {
$(document).mousedown($.datepicker._checkExternalClick).