-1

这是代码

$('#printlocs').on('change', function() {
    var selctloc = $('#printlocs').find('option:selected');
    $('#loc1').prop('disabled', selctloc.val() == '0');
    $('#loc2').prop('disabled', selctloc.val() == '0');
    $('#loc3').prop('disabled', selctloc.val() == '0');
    $('#loc4').prop('disabled', selctloc.val() == '0');
});

我想这样做,#loc1只有当等于时才禁用字符串'0'#loc2禁用'0' or '1'等等,但我无法弄清楚。我尝试使用 将不同的区域放在括号中||,但没有任何效果。

4

2 回答 2

1

只需检查这些值吗?

$('#printlocs').on('change', function() {
    $('#loc1').prop('disabled', (this.value == '0'));
    $('#loc2').prop('disabled', (this.value == '0' || this.value == '1'));
    $('#loc3').prop('disabled', (this.value == '0' || this.value == '2' || this.value == '3'));
    $('#loc4').prop('disabled', (this.value == '4')); // 4 only ?
});

小提琴

您当然需要一个带有具有这些值的选项的选择元素

于 2013-08-25T21:47:58.587 回答
0

如果我理解您何时想正确禁用您的选项,您可以使用该prop函数也接受 afunction作为它的第二个参数的事实,这样您就可以使用它以及以选择器开头的选项来简化您的代码。

例如:

var val = Number(selctloc.val());

$('[id^=prop]').prop('disabled', function () {
    //get the number of the element out of the id
    var num = Number(this.id.substring(3));

    //disable if the value is smaller than the number
    return val < num;
});
于 2013-08-25T21:55:10.233 回答