确保使用所有值

我试图确保除了一个之外的所有值都用在我的下拉中 – 但是有一个错误,它可能会欺骗它。 而且我不确定为什么。

您可以尝试: http : //jsfiddle.net/BSxXk/2/并使用值: 4 2 3 4 – 这应该产生错误,因为1未使用。 我在Windows上使用Firefox。

HTML:

  Choose value 1 2 3 4   Choose value 1 2 3 4   Choose value 1 2 3 4   Choose value 1 2 3 4  
d

JQuery的:

 var valid_values = [1, 2, 3, 4]; $("#submit").on("click", function(event) { event.preventDefault(); var values = $.unique($('select.question-answer').map(function() { var value = $(this).val(); if (value === "-1") { return; } return value; })); if(values.length === valid_values.length) { $("#result").html("Valid"); } else { $("#result").html("All values (1-4) should be used in answering the question."); } }); 

错误的屏幕截图。 1未使用,但表示有效:

在此处输入图像描述

请注意,这是我上一个问题的后续跟进: 确保所有值都用于下拉菜单

诀窍问题,小提琴中的代码与发布的代码不匹配。 小提琴与发布的代码配合得很好

http://jsfiddle.net/BSxXk/2/

 var valid_values = [1, 2, 3, 4]; $("#submit").on("click", function(event) { event.preventDefault(); var values = $.unique($('select.question-answer').map(function() { var value = $(this).val(); if (value === "-1") { return; } return value; })); if(values.length === valid_values.length) { $("#result").html("Valid"); } else { $("#result").html("All values (1-4) should be used in answering the question."); } }); 

UPDATE

使用jquery 1.10.1为我工作http://jsfiddle.net/BSxXk/5/使用上面的任何东西,对我来说不起作用

我仍然认为这里使用unique是不正确的,因为$ .unique仅适用于DOM元素https://api.jquery.com/jQuery.unique/问题答案中的map函数只返回数字,所以它很有意义那种独特不起作用

试试这个: http : //jsbin.com/ciwaq/1/edit

 $('button').click(function(){ var values = ['1','2','3','4']; var selectValues = []; $('select').each(function(){ selectValues.push($(this).val()); }); if($(values).not($(values).not(selectValues).get()).get().length !== values.length) { $('#result').html('All values are not used'); } else { $('#result').html('All values ARE USED :)'); } });