从每个组合框中选择一个选项

时间:2011-12-01 17:01:16

标签: javascript jquery html combobox

我在表单上有6个html选项,每个选项包含相同的8个选项。

如果从其中一个选项中选择了一个选项,那么我希望在所有其他选项中禁用该选项。我希望选项仍然可见(即不得删除)。

是否有可以使用的jquery插件或类似插件?

2 个答案:

答案 0 :(得分:2)

在此处试试:http://jsfiddle.net/jbjkm/3/

$.fn.exclusiveSelectSet = function() {
  var set = this, options = this.find('option');
  return this.change(function() {
    var selected = {};
    set.each(function(){ selected[this.value] = true });
    options.each(function() {
      var sel = this.parentNode;
      this.disabled = this.value && selected[this.value] &&
                      sel.options[sel.selectedIndex] != this;
    });
  }).change();
}

$('select.loves').exclusiveSelectSet();
$('#likes select').exclusiveSelectSet();

在英语中,每当更改选择值时:

  1. 找到所有选定选项的values
  2. 禁用包含所选值之一的任何选项,  除非它没有任何值(value="")或它是<select>中的选定选项。

答案 1 :(得分:0)

禁用/启用具有相同值的所有其他复选框添加此Javascript:

$(document).ready(function(){
  $('input[tpye="checkbox"]').change(function(){
    if($(this).is(':checked'))
      $('input[value="'.$(this).val().'"]').each(function(){
        $(this).attr('disabled', true);
      });
    else
      $('input[value="'.$(this).val().'"]').each(function(){
        $(this).removeAttr('disabled');
      });
  });
});

如果你使用选择试试这个:

$(document).ready(function(){
  $('select').change(function(){
    $('option:disabled').each(function(){
      $(this).removeAttr('disabled');
    });
    $('select').each(function(){
      var v = $(this).val();
      $('option[value="'+v+'"]').each(function(){
        if($(this).parent() != $(this))
          $(this).attr('disabled',true);
      });
    });
  });
});

编辑:啊,对,在禁用某些(重置)

之前启用所有选项