禁用SELECT直到选择上一个SELECT

时间:2012-02-16 17:31:35

标签: jquery select

我有5个HTML选择框,这些选择框都填充了相同的数据,因此不是“链式选择”。

我希望select2禁用,直到select1被选中并选择3禁用,直到SELECTS 1&已经挑选了2个等等。

我的SELECT ID是:

  • primary(1)
  • record1(2)
  • record2(3)
  • record3(4)
  • record4(5)

所有SELECTS的默认值为“选择作业”

如果SELECT具有除“Select Job”之外的任何其他值,则行中的下一个SELECT可以变为活动状态。

不确定如何在jQuery中执行此操作

2 个答案:

答案 0 :(得分:5)

假设除了第一个之外的所有部分都已被禁用:

$("select").change(function() {
    if ($(this).val() !== "select job") {
        $(this).next("select").prop("disabled", false);
    } else {
        if(!$(this).index() === 0)
            $(this).prop("disabled", true);   
        $(this).next("select").prop("disabled", true);        
    }
});​

Demo.

我通常建议首先阅读http://www.whathaveyoutried.com/的精彩资源,但我正在等待下一班车,所以我需要做点什么来消磨时间(这不是工作)。

答案 1 :(得分:2)

这是一个独立于它们在页面上的显示方式的解决方案。如果选择框始终确保以正确的顺序出现,则可以简化。 jsFiddle

var linkOrder = [
    "primary",
    "record1",
    "record2",
    "record3",
    "record4"
];
$('select.linked').not('#' + linkOrder[0]).attr('disabled', 'disabled');
$('.linked').change(function(){
    var id = $(this).attr('id');
    var index = $.inArray(id, linkOrder);
    $('#' + linkOrder[index+1]).removeAttr('disabled');
});