当前位置: 代码迷 >> JavaScript >> 复选框,选择全部/无消息
  详细解决方案

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

热度:23   发布时间:2023-06-13 12:16:32.0

我有这段代码可以检查被选中的复选框,并显示是否全部选中,未选中或列出了所有复选框。

该代码工作正常,但我认为这已经很长时间了,我不是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;}

您可以使用三元运算符并摆脱4行。

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

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

这样的事情将更普遍地起作用,不仅在您有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');
  相关解决方案