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

Select/alter range of values in jquery function

本文关键字:范围 jquery 函数 选择      更新时间:2023-09-26

这是代码

$('#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'禁用,等等,但我想不通。我尝试过使用||将不同的区域放在括号中,但没有任何效果。

只检查这些值?

$('#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

当然,您确实需要一个具有以下值的选项的select元素

如果我知道什么时候你想正确地禁用你的选项,你可以使用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;
});