2012-04-14 48 views
0

好吧,我知道我正在推翻這一點,因爲它根本不會來到我身邊。我有一組輸入。我將如何去檢查以確保它們的值都是唯一的?謝謝!Javascript確保所有輸入都具有唯一值

+0

你可以使用jquery或只有純JavaScript嗎? – kpotehin 2012-04-14 21:27:59

回答

1
var inputs=[], flag=false; 
$('input').each(function(){ 
    if ($.inArray(this.value, inputs) != -1) flag=true ; 
    inputs.push(this.value); 
}); 

if (flag==true) { 
    //duplicates exists 
} 
+2

OP是否使用jQuery? – 2012-04-14 21:31:52

+0

哇,這麼多回復如此迅速:p我嘗試了其中的幾個,直到我擊中了這個,而且它的簡單性已經消失。完善!感謝百萬adeneo :) – Aaron 2012-04-14 21:51:23

-1

使用本

var areUnique = true; 
$.each($("Input_Selector",function(){ 
var val = $(this).val(); 
    $.each($("Input_Selector",function(){ 
    if(val == $(this).val()){areUnique = false;} 
    }); 
})); 
//check the value of areUnique here 
+0

您可以通過檢查第一個循環內的areUnique的值來提高效率,如果它是錯誤的,則可以打破它。 – Alex 2012-04-14 21:33:30

+0

您的語法已損壞。 – 2012-04-14 22:00:19

0

這似乎是一個驗證問題。你可以用奇怪的方式來做(如果有很多if子句,我想這不是我們想要的),試圖將所有這些輸入添加到數組中,並在while循環中檢查它們。或者,也許,如果這些輸入是字符串,你可以連接它們並用正則表達式來嘗試一些東西。

對此應該有更多的答案,並且確定最好在這裏召集一個。

0

http://jsfiddle.net/PF4rD/

function uniqueValues(elements) { 

    var values = {}, 
     len = elements.length, 
     i = 0; 

    for (; i < len; i++) { 
     if (!values[elements[i].value]) values[elements[i].value] = true; 
     else return false; 
    } 
    return true; 
}; 
相關問題