2017-03-03 53 views
0

我將輸入的值存儲在變量中並將它們保存在數組中。如何驗證和比較javascript中的數組重複項

我想比較是否輸入了任何重複的行程編號,如果輸入了重複的行程編號和相應的郵政編碼,則會添加紅色錯誤。

<p> 
    <input id="tripcode1" value="tripcode1"> 
    <input id="zipcode1" value="zipcode1"> 
</p> 
<p> 
    <input id="tripcode2" value="tripcode2"> 
    <input id="zipcode2" value="zipcode2"> 
</p> 
<p> 
    <input id="tripcode3" value=""> 
    <input id="zipcode3" value=""> 
</p> 
<p> 
    <input id="tripcode4" value=""> 
    <input id="zipcode4" value=""> 
</p> 
<p> 
    <input id="tripcode5" value=""> 
    <input id="zipcode5" value=""> 
</p> 
<a href="javascript:validateTripID();">Submit</a> 
<script> 
    function validateTripID() { 
    var tripcode1 = document.getElementById("tripcode1").value; 
    var zipcode1 = document.getElementById("zipcode1").value; 
    var tripcode2 = document.getElementById("tripcode2").value; 
    var zipcode2 = document.getElementById("zipcode2").value; 
    var tripcode3 = document.getElementById("tripcode3").value; 
    var zipcode3 = document.getElementById("zipcode3").value; 
    var tripcode4 = document.getElementById("tripcode4").value; 
    var zipcode4 = document.getElementById("zipcode4").value; 
    var tripcode5 = document.getElementById("tripcode5").value; 
    var zipcode5 = document.getElementById("zipcode5").value; 
    var tripIDArray = [ 
     [tripcode1,zipcode1], 
     [tripcode2,zipcode2], 
     [tripcode3,zipcode3], 
     [tripcode4,zipcode4], 
     [tripcode5,zipcode5] 
    ]; 
    var tripArrayLength = tripIDArray.length; 
    var Z = 0; 
    for (var i=0; i < tripArrayLength; i++) { 
     var a = tripIDArray[Z][0]; 
     for (var k=0 ; k < tripArrayLength; K++) { 
     var b = tripIDArray[k][0]; 
     k++; 
     if (a === b) { 
      alert(a); 
     } 
     } 
     Z = Z+1; 
    } 
    } 
</script> 
+0

ü希望那是什麼我不清楚? –

+0

如果用戶輸入了兩次相同的旅程編號,我想提醒他[鏈接](https://jsfiddle.net/sandeepgovada/e2atyk14/1/) –

+0

您只想檢測重複行程編碼,或者您還想查找重複的郵編? –

回答

0

Here You Go!見的jsfiddle鏈接

check updated code here

<p> 
    <input id="tripcode1" value="tripcode1"> 
    <input id="zipcode1" value="zipcode1"> 
</p> 
<p> 
    <input id="tripcode2" value="tripcode2"> 
    <input id="zipcode2" value="zipcode2"> 
</p> 
<a href="javascript:validateTripID();">Submit</a> 
<script> 
    function validateTripID() { 
    var tripcode1 = document.getElementById("tripcode1").value; 
    var zipcode1 = document.getElementById("zipcode1").value; 
    var tripcode2 = document.getElementById("tripcode2").value; 
    var zipcode2 = document.getElementById("zipcode2").value; 
     var tripIDArray = [ 
     [tripcode1,zipcode1], 
     [tripcode2,zipcode2] 
    ]; 
    var tripArrayLength = tripIDArray.length; 
    var Z=0; 
    for (var i = 0; i < tripArrayLength; i++) { 
     var ithItem = tripIDArray[i]; 
     for (var k =i+1 ; k < tripArrayLength; K++) { 
     var kthItem = tripIDArray[k]; 
     if(ithItem[0] == kthItem[0] && ithItem[1] == kthItem[1]){ 
     alert("match found:"+ithItem+"=="+kthItem); 
     } 
     } 
    } 
    } 

</script> 
0

我並沒有完全得到ü想要什麼,但檢查: update

,如果你還需要檢查郵政編碼只是改變了以下內容:

// change this var a = tripIDArray[i] to 
var a = tripIDArray[i]; 
... 
var b = tripIDArray[k]; 
... 
//change if statement to 
if (a[0]===b[0] && a[1]===b[1]) ... 
0

我已更新您的小提琴以查找重複的行程代碼條目。根據你的解釋,我想這是你想要做的。

function validateTripID() { 
    var tripcode1 = document.getElementById("tripcode1"); 
    var zipcode1 = document.getElementById("zipcode1"); 
    var tripcode2 = document.getElementById("tripcode2"); 
    var zipcode2 = document.getElementById("zipcode2"); 
    var tripcode3 = document.getElementById("tripcode3"); 
    var zipcode3 = document.getElementById("zipcode3"); 
    var tripcode4 = document.getElementById("tripcode4"); 
    var zipcode4 = document.getElementById("zipcode4"); 
    var tripcode5 = document.getElementById("tripcode5"); 
    var zipcode5 = document.getElementById("zipcode5"); 
    var tripcodes = [tripcode1, tripcode2, tripcode3, tripcode4, tripcode5]; 
    var zipcodes = [zipcode1, zipcode2, zipcode3, zipcode4, zipcode5]; 
    var tripIDArray = [ 
     [tripcodes[0].value, zipcodes[0].value], 
     [tripcodes[1].value, zipcodes[1].value], 
     [tripcodes[2].value, zipcodes[2].value], 
     [tripcodes[3].value, zipcodes[3].value], 
     [tripcodes[4].value, zipcodes[4].value] 
    ]; 
    var tripArrayLength = tripIDArray.length; 
    for (var i = 0; i < tripArrayLength; i++) { 
     for(var j = i+1; j < tripArrayLength; j++){ 
     if(tripIDArray[i][0] == tripIDArray[j][0]){ 
      tripcodes[i].className += "error"; 
      alert("tripcode "+tripIDArray[i][0]+" already entered at highlighted field!"); 
    } 
    } 
} 

}

工作小提琴:https://jsfiddle.net/yogesh214/e2atyk14/4/