Commit f4ffcdf7 authored by David Stutz's avatar David Stutz

Merge pull request #58 from programcsharp/master

Normalize prop access
parents c7b5fb42 33311d45
......@@ -122,15 +122,14 @@
constructor: Multiselect,
// Add the [] Select all option
// Add the [] Select all option
createSelectAllOption: function () {
$(this.$select).html('<option value="select-all-option"> Select all</option>' + this.$select.html());
$(this.$select).html('<option value="select-all-option"> Select all</option>' + this.$select.html());
},
// Will build an dropdown element for the given option.
createOptionValue: function(element) {
if ($(element).is(':selected')) {
$(element).attr('selected', 'selected');
$(element).prop('selected', 'selected');
$(element).attr('selected', 'selected').prop('selected', true);
}
// Support the label attribute on options.
......@@ -148,7 +147,7 @@
$('ul', this.$container).append(li);
if ($(element).is(':disabled')) {
checkbox.attr('disabled', 'disabled').prop('disabled', 'disabled').parents('li').addClass('disabled')
checkbox.attr('disabled', 'disabled').prop('disabled', true).parents('li').addClass('disabled');
}
checkbox.prop('checked', selected);
......@@ -160,10 +159,10 @@
// Build the dropdown and bind event handling.
buildDropdown: function () {
//If options.includeSelectAllOption === true, add the include all checkbox
if (this.options.includeSelectAllOption && this.options.multiple) {
this.createSelectAllOption();
}
//If options.includeSelectAllOption === true, add the include all checkbox
if (this.options.includeSelectAllOption && this.options.multiple) {
this.createSelectAllOption();
}
this.$select.children().each($.proxy(function (index, element) {
// Support optgroups and options without a group simultaneously.
var tag = $(element).prop('tagName').toLowerCase();
......@@ -206,21 +205,23 @@
var option = $('option', this.$select).filter(function() { return $(this).val() == $(event.target).val(); });
var $optionsNotThis = $('option', this.$select).not($(option));
var $checkboxesNotThis = $('input', this.$container).not($(event.target));
if (isSelectAllOption) {
$checkboxesNotThis.filter(function () { return $(this).is(':checked') != checked; }).trigger('click');
$checkboxesNotThis.filter(function () { return $(this).is(':checked') != checked; }).trigger('click');
}
if (checked) {
option.attr('selected', 'selected');
option.prop('selected', 'selected');
if (!this.options.multiple) {
option.prop('selected', true);
if (!this.options.multiple)
{
if (this.options.selectedClass) {
$($checkboxesNotThis).parents('li').removeClass(this.options.selectedClass);
}
$($checkboxesNotThis).prop('checked', false);
$optionsNotThis.removeAttr('selected').removeProp('selected');
$optionsNotThis.removeAttr('selected').prop('selected', false);
// It's a single selection, so close.
$(this.$container).find(".multiselect.dropdown-toggle").click();
}
......@@ -228,9 +229,10 @@
if (this.options.selectedClass == "active") {
$optionsNotThis.parents("a").css("outline", "");
}
}
else {
option.removeAttr('selected');
option.removeAttr('selected').prop('selected', false);
}
var options = this.getSelected();
......@@ -339,8 +341,7 @@
checkbox.prop('checked', true);
option.attr('selected', 'selected');
option.prop('selected', 'selected');
option.attr('selected', 'selected').prop('selected', true);
var options = this.getSelected();
$('button', this.$container).html(this.options.buttonText(options, this.$select));
......@@ -357,8 +358,7 @@
checkbox.prop('checked', false);
option.removeAttr('selected');
option.removeProp('selected');
option.removeAttr('selected').prop('selected', false);
var options = this.getSelected();
$('button', this.$container).html(this.options.buttonText(options, this.$select));
......@@ -379,14 +379,14 @@
// For IE 9 support.
getSelected: function() {
if (navigator.appName == 'Microsoft Internet Explorer') {
var regex = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (regex.exec(navigator.userAgent) != null) {
return $('option:selected[value!="select-all-option"]', this.$select);
}
}
//if (navigator.appName == 'Microsoft Internet Explorer') {
// var regex = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
// if (regex.exec(navigator.userAgent) != null) {
// return $('option:selected[value!="select-all-option"]', this.$select);
// }
//}
return $('option[selected][value!="select-all-option"]', this.$select);
return $('option:selected[value!="select-all-option"]', this.$select);
}
};
......@@ -407,8 +407,8 @@
});
}
$(function()
{
$("select[data-role=multiselect]").multiselect();
});
$(function()
{
$("select[data-role=multiselect]").multiselect();
});
}(window.jQuery);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment