Fix some issues with parsing blank options.

abstract-chosen
Patrick Filler 2011-07-15 18:04:37 -04:00
parent 7778ef0cb2
commit 15a5366aad
4 changed files with 78 additions and 58 deletions

View File

@ -214,7 +214,7 @@
data = _ref[_i];
if (data.group) {
content += this.result_add_group(data);
} else {
} else if (!data.empty) {
content += this.result_add_option(data);
if (data.selected && this.is_multiple) {
this.choice_build(data);
@ -443,7 +443,7 @@
_ref = this.results_data;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
option = _ref[_i];
if (!option.disabled) {
if (!option.disabled && !option.empty) {
if (option.group) {
$(option.dom_id).hide();
} else if (!(this.is_multiple && option.selected)) {
@ -696,21 +696,27 @@
};
OptionsParser.prototype.add_option = function(option, group_id, group_disabled) {
var _ref;
if (option.nodeName === "OPTION" && (this.sel_index > 0 || option.text !== "")) {
if (group_id || group_id === 0) {
this.parsed[group_id].children += 1;
if (option.nodeName === "OPTION") {
if (option.text !== "") {
if (group_id || group_id === 0) {
this.parsed[group_id].children += 1;
}
this.parsed.push({
id: this.sel_index + this.group_index,
select_index: this.sel_index,
value: option.value,
text: option.text,
selected: option.selected,
disabled: (_ref = group_disabled === true) != null ? _ref : {
group_disabled: option.disabled
},
group_id: group_id
});
} else {
this.parsed.push({
empty: true
});
}
this.parsed.push({
id: this.sel_index + this.group_index,
select_index: this.sel_index,
value: option.value,
text: option.text,
selected: option.selected,
disabled: (_ref = group_disabled === true) != null ? _ref : {
group_disabled: option.disabled
},
group_id: group_id
});
return this.sel_index += 1;
}
};

View File

@ -211,7 +211,7 @@
data = _ref[_i];
if (data.group) {
content += this.result_add_group(data);
} else {
} else if (!data.empty) {
content += this.result_add_option(data);
if (data.selected && this.is_multiple) {
this.choice_build(data);
@ -447,7 +447,7 @@
_ref = this.results_data;
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
option = _ref[_i];
if (!option.disabled) {
if (!option.disabled && !option.empty) {
if (option.group) {
$(option.dom_id).hide();
} else if (!(this.is_multiple && option.selected)) {
@ -715,21 +715,27 @@
};
OptionsParser.prototype.add_option = function(option, group_id, group_disabled) {
var _ref;
if (option.nodeName === "OPTION" && (this.sel_index > 0 || option.text !== "")) {
if (group_id || group_id === 0) {
this.parsed[group_id].children += 1;
if (option.nodeName === "OPTION") {
if (option.text !== "") {
if (group_id || group_id === 0) {
this.parsed[group_id].children += 1;
}
this.parsed.push({
id: this.sel_index + this.group_index,
select_index: this.sel_index,
value: option.value,
text: option.text,
selected: option.selected,
disabled: (_ref = group_disabled === true) != null ? _ref : {
group_disabled: option.disabled
},
group_id: group_id
});
} else {
this.parsed.push({
empty: true
});
}
this.parsed.push({
id: this.sel_index + this.group_index,
select_index: this.sel_index,
value: option.value,
text: option.text,
selected: option.selected,
disabled: (_ref = group_disabled === true) != null ? _ref : {
group_disabled: option.disabled
},
group_id: group_id
});
return this.sel_index += 1;
}
};

View File

@ -189,7 +189,7 @@ class Chosen
for data in @results_data
if data.group
content += this.result_add_group data
else
else if !data.empty
content += this.result_add_option data
if data.selected and @is_multiple
this.choice_build data
@ -397,7 +397,7 @@ class Chosen
zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i')
for option in @results_data
if not option.disabled
if not option.disabled and not option.empty
if option.group
$(option.dom_id).hide()
else if not (@is_multiple and option.selected)
@ -597,17 +597,21 @@ class OptionsParser
@group_index += 1
add_option: (option, group_id, group_disabled) ->
if option.nodeName is "OPTION" and (@sel_index > 0 or option.text != "")
if group_id || group_id is 0
@parsed[group_id].children += 1
@parsed.push
id: @sel_index + @group_index
select_index: @sel_index
value: option.value
text: option.text
selected: option.selected
disabled: ((group_disabled is true) ? group_disabled : option.disabled)
group_id: group_id
if option.nodeName is "OPTION"
if option.text != ""
if group_id || group_id is 0
@parsed[group_id].children += 1
@parsed.push
id: @sel_index + @group_index
select_index: @sel_index
value: option.value
text: option.text
selected: option.selected
disabled: ((group_disabled is true) ? group_disabled : option.disabled)
group_id: group_id
else
@parsed.push
empty: true
@sel_index += 1
OptionsParser.select_to_array = (select) ->

View File

@ -184,7 +184,7 @@ class Chosen
for data in @results_data
if data.group
content += this.result_add_group data
else
else if !data.empty
content += this.result_add_option data
if data.selected and @is_multiple
this.choice_build data
@ -389,7 +389,7 @@ class Chosen
zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i')
for option in @results_data
if not option.disabled
if not option.disabled and not option.empty
if option.group
$(option.dom_id).hide()
else if not (@is_multiple and option.selected)
@ -595,17 +595,21 @@ class OptionsParser
@group_index += 1
add_option: (option, group_id, group_disabled) ->
if option.nodeName is "OPTION" and (@sel_index > 0 or option.text != "")
if group_id || group_id is 0
@parsed[group_id].children += 1
@parsed.push
id: @sel_index + @group_index
select_index: @sel_index
value: option.value
text: option.text
selected: option.selected
disabled: ((group_disabled is true) ? group_disabled : option.disabled)
group_id: group_id
if option.nodeName is "OPTION"
if option.text != ""
if group_id || group_id is 0
@parsed[group_id].children += 1
@parsed.push
id: @sel_index + @group_index
select_index: @sel_index
value: option.value
text: option.text
selected: option.selected
disabled: ((group_disabled is true) ? group_disabled : option.disabled)
group_id: group_id
else
@parsed.push
empty: true
@sel_index += 1
OptionsParser.select_to_array = (select) ->