Сценарий: Я продаю футболку в розовом, темно-синем, черном и маленьком, среднем и большом размерах. У меня есть две коробки для выбора, одна для цвета, а другая для размера. Я продаюсь из средних розовых футболок, поэтому вам нужно отключить эту опцию. Как отключить параметр «Средний», когда выбран «Розовый», но убедитесь, что он активен для других параметров цвета?Как отключить опцию выбора на основе другого варианта выбора
<select name="product[]" id="color">
<option value="Pink">Pink</option>
<option value="Navy">Navy</option>
<option value="Black">Black</option>
</select>
<select name="product[]" id="size">
<option value="Small">Small</option>
<option value="Medium">Medium</option>
<option value="Large">Large</option>
</select>
У меня был удар по решению этой проблемы, но я не могу заставить ее работать. Мне нужно решение, которое работает с значениями параметров с буквами и пробелами, то есть «Темно-розовый» или «Экстра большой», поскольку значения опций передаются в кассу. Это самый близкий я получил к решению:
function enableElements()
{
if($('#color').val() == "pink"){
$("#size option[value='medium']").attr('disabled',true);
}
else $("#size option[value='medium']").attr('disabled',false);
}
^Это основано на статье здесь: http://www.codeoncall.com/disable-drop-down-list-items-based-on-another-drop-down-selection/.
возможно дубликат [Как отключить выбор на основе другого выбранного варианта?] (Http://stackoverflow.com/questions/15888444/how-to-disable-select-based-on-other-selected- опция) – melancia
Просто совет в любом случае. Не используйте '.attr()' для этого. Вместо этого используйте '.prop()'. [.prop() vs .attr()] (http://stackoverflow.com/questions/5874652/prop-vs-attr) – melancia
Еще один совет: вам действительно не нужно 'if ... then ... else' для этого. '$ (" # size option [value = 'medium'] "). prop ('disabled', $ ('# color'). val() ==" pink ");' – melancia