Ответ 1
$("select option[disable='disable']").attr("disabled","disabled");
или если вы используете jquery 1.6 или выше
$("select option[disable='disable']").prop("disabled",true);
Есть способ, плагин или фрагмент кода, который я мог бы использовать для создания
<select><option disable="disable">....</option></select>
в Safari на ipad отключить?
last edit: вот код:
function getSelectedValues(ids) {
var selectedValues = []
, $selected = $('.selector').children('option:selected');
$selected.each(function(){
if(this.value != 0){
if(ids == true){
selectedValues.push(this.value+'-'+$(this).parent().attr('id'));
} else {
selectedValues.push(this.value);
}
}
});
return selectedValues;
}
function clearDisabled() {
$('.selector').children(':disabled').attr('disabled', false);
}
function disableSelected(selectedValues,id) {
sv = selectedValues || [];
if(id === true){
var selectedIds = [];
var selectedVals = [];
$.each(selectedValues, function(key, value) {
values = value.split('-');
selectedVals.push(values[0]);
selectedIds.push(values[1]);
});
for (var i=0;i<selectedVals.length;i++) {
$('.selector').each(function(){
if($(this).attr('id') == selectedIds[i]){
$('option[value=' + selectedVals[i] + ']',this).not(':selected').attr('disabled', true);
}
});
}
}
}
$(document).ready(function(){
$('.selector').change(function(){
selectedValues = getSelectedValues(true);
clearDisabled();
disableSelected(selectedValues, true);
});
var selectedValues = getSelectedValues(true);
disableSelected(selectedValues, true);
});
Я сделал рытье, и я понимаю, что это ограничение сафари-мобильника...
$("select option[disable='disable']").attr("disabled","disabled");
или если вы используете jquery 1.6 или выше
$("select option[disable='disable']").prop("disabled",true);
Сложнее получить реализацию кросс-браузера, сафари для iPad и iPhone, т.е. 6, и я предполагаю, что какой-то другой браузер просто игнорирует отключенные опции.
Вам нужно удалить их. Итак, сохраните его копию и перестройте параметры, когда захотите.
Это пример, где вы можете включать/отключать параметры на основе их значения
var $select = $("select#myselect");
$select.data("copy", $select.find("option"))
function disableOption($option) {
var optionVal = $option.val();
$select.empty()
$select.data("copy").each(function(){
var $currentOption = $(this);
if (optionVal !== $currentOption.val() && $currentOption.attr("disabled")!=="disabled") $select.append($currentOption);
else $currentOption.attr("disabled", "disabled");
});
}
function enableOption($option) {
var optionVal = $option.val();
$select.empty()
$select.data("copy").each(function(){
var $currentOption = $(this);
if (optionVal === $currentOption.val()) $currentOption.removeAttr("disabled")
if ($currentOption.attr("disabled")!=="disabled") $select.append($currentOption);
});
}