在jquery函数中选择/更改值的范围

时间:2013-08-25 21:36:51

标签: javascript jquery

这是代码

$('#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'禁用时才会禁用包含||的字符串,依此类推,但我可以&# 39;弄清楚。我尝试使用{{1}}将不同区域放在括号中,但没有任何效果。

2 个答案:

答案 0 :(得分: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 ?
});

FIDDLE

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

答案 1 :(得分:0)

如果我理解你想要正确地禁用你的选项,你可以使用prop函数也需要function作为它的第二个参数的事实,这样你就可以使用它了使用选择器启动以简化代码。

例如:

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;
});