如何使用jQuery 2.1.4检查选择选项更改的一组复选框

时间:2016-01-05 03:39:01

标签: php jquery

我正在尝试编码,以便在选择选择框值时,将选择其他值。例如,如果我选择每月,那么将选择所有月份。如果我选择季度,则只选择4月,8月和更多。如果我选择Halfyearly只会选择May和Dec。

那么,有什么办法可以用jQuery 2.1.4获得上面的输出吗?

checkbox

我想提前感谢....

以下代码无效,但所有ifelse条件均正常运行。

function smonth() {
    var fre=$('#frequency').val();
    if (fre=="monthly") {
        alert("monthly");
    } else {
        if(fre=="quaterly") {
            alert("quaterly");
        }
    }

    if (fre=="halfyearly") {
        alert("halfyearly");
    } else {
        if(fre=="yearly") {
            alert("yearly");
        }
    }
}

3 个答案:

答案 0 :(得分:0)

首先,提供您的html

其次,你可以通过smth来做到这一点。像这样:

function selectMonths(mark) {
    $('.month').each(function () {
        var checkbox = $(this);
        var level = parseInt(checkbox.data("level"));
        if (level >= mark)
            checkbox.check();
    }
}

$("select.level").changed(function () {
    var selectedLevel = $(this).val();
    selectMonths(selectedLevel);
});

你的html必须像:

...
<input type="checkbox" name="..." data-level="2" />May
<input type="checkbox" name="..." data-level="1" />June
...

逻辑:

  1. 每种时间类型必须具有频率级别:每月 - 1,每季度 - 2,半年 - 3,每年 - 4
  2. 每个月必须有相应的级别:12月 - 4(每年),4月 - 2日(季度),全部仅按月触发 - 1
  3. 当您选择频率类型时 - 您还会检查具有相应data-level属性
  4. 的复选框

答案 1 :(得分:0)

如果没有html,您可以显式设置这样的复选框 -

print(type(x))

如果您在每个间隔对应的复选框中添加类,那么您可以设置所有适用于单行的类 -

html -

  $('#myselect').change(function(){
     $('.item :checkbox').removeAttr('checked'); //uncheck all the boxes
        switch($( "#myselect option:selected" ).text()) {
            case 'monthly':
                $('.item :checkbox').checked = true;//check all
                break;
            case 'quarterly':
                $('#mycheckboxApr').checked = true;
                $('#mycheckboxAug').checked = true;
                // etc...for the rest of the quarterly checkboxes
                break;
            case 'halfyearly':
                $('#mycheckboxMay').checked = true;
                $('#mycheckboxDec').checked = true;
                break;
        }
  })

jquery -

<input id="mycheckboxDec" type="checkbox" class = "monthly quarterly" />

答案 2 :(得分:0)

谢谢大家,我得到了它,它的工作完全适用于jquery 2.1.4我已经使用了解决方案代码的答案组合。

var abc = $(&#34;#frequency&#34;)。val();     开关(ABC)     {         案例&#39;每月&#39;:         $(&#39;输入:复选框&#39;)。支撑(&#39;检查&#39;,假);         $(&#39;输入:复选框&#39;)。支撑(&#39;检查&#39;,真正的);         打破;

    case 'quaterly':
    $('input:checkbox').prop('checked',false);
    $('#mycheckboxapr').prop('checked',true);
    $('#mycheckboxaug').prop('checked',true);
    $('#mycheckboxdec').prop('checked',true);
    break;

    case 'halfyearly':
    $('input:checkbox').prop('checked',false);
    $('#mycheckboxjune').prop('checked',true);
    $('#mycheckboxdec').prop('checked',true);
    break;

    case 'yearly':
    $('input:checkbox').prop('checked',false);
    $('#mycheckboxapr').prop('checked',true);
    break;

}

}

它运作正常。