从下拉列表中选择最后一个值,并将其禁用以用于其他下拉列表

我有3个下拉值: SelectOneTwoThree和以下是HTML。

  Select One Tow Three   Select One Tow Three   Select One Tow Three  

条件

  1. 首先,jQuery函数应该存储所有框中的当前值。
  2. 如果用户从#box1选择One ,则应从所有其他框中禁用它( One ),如果再次从#box1选择Two ,则从其他框中禁用Two ,并启用One 。 即最后一个值被禁用而不是所有值。
  3. 还要注意,用户可以从任何下拉列表中选择是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); }); }); 

演示