复选框,选择全部/无消息

时间:2015-07-17 18:06:09

标签: javascript jquery

我有这个代码来检查被选中的复选框,并显示它们是否全部被选中,没有或者是哪些列表。

代码工作正常,但我认为这很长,我不是javascript的专家。 有没有办法制作更短的代码?

var Desktop = $(".multiselect.desktop input[name$='[]']:checked").map(function() {return this.value;}).get().join(', ');

if(Desktop.split(', ').length == 4){ Desktop = 'All';}
else if(Desktop.length == 0){ Desktop = 'None';} else {Desktop = Desktop;}

2 个答案:

答案 0 :(得分:1)

您可以使用三元运算符并删除4行。

var len = Desktop.split(', ').length;

Desktop = len === 4 ? 'All' : (len === 0 ? 'None' : Desktop);

答案 1 :(得分:1)

这样的事情会更普遍,不仅仅是你有4个复选框:

var max = $(".multiselect.desktop input[name$='[]']").length();
var $checked = $(".multiselect.desktop input[name$='[]']:checked");

var Desktop = ($checked.length() == max)?'All':($checked.length()?$checked.map(function() {return $(this).val();}).join(', '):'None');