从下拉列表中选择最后一个值,并将其禁用以用于其他下拉列表
我有3个下拉值: Select
, One
, Two
, Three
和以下是HTML。
Select One Tow Three Select One Tow Three Select One Tow Three
条件
- 首先,jQuery函数应该存储所有框中的当前值。
- 如果用户从
#box1
选择One
,则应从所有其他框中禁用它(One
),如果再次从#box1
选择Two
,则从其他框中禁用Two
,并启用One
。 即最后一个值被禁用而不是所有值。 - 还要注意,用户可以从任何下拉列表中选择是box1 / box2还是box3。
编辑
$(document).ready(function(){ $('#box1').data('pre', $(this).val()); // added this line to get the pre value. $("select").change(function(e){ var id = $(this).attr("id"); var before_change = $(this).data('pre'); alert(before_change); // alert shows blank values }); });
我想用jQuery做到这一点。 请帮忙。
像这样:
$(".dpdown").on("change", function() { var sel = $(this).val(); $(".dpdown").find("option").prop("disabled", false); $(".dpdown").not(this).find("option[value='" + sel + "']").prop("disabled", true); });
尝试这样的事情:
var $selects = $('.dpdown').change(function() { var val = $(this).val(); $selects .children().prop('disabled', false) .end().not(this) .find('[value="' + val + '"]').prop('disabled', true); });
你编码简单:
DEMO
尝试这样的事情:
更新
var $selects = $(".dpdown").change(function() { var selectedValues = []; $.each($selects, function(index, select) { var value = $(select).val(); if (value != "Select") { selectedValues.push(value); } }); $selects .find("option") .prop("disabled", false); $.each(selectedValues, function(index, value) { $selects .find("option[value='" + value +"']") .not(":selected") .prop("disabled", true); }); });
演示