2009-07-14 3 views
-2

양식에 n 개의 텍스트 상자가 있습니다. 사용자가 텍스트 상자에 값을 입력 한 후에는 다른 텍스트 상자와 중복되지 않았는지 확인해야합니다. 예 :javascript-multiple-input-textbox-validation

Textbox[0] : 1 
Textbox[1] : 2 
Textbox[2] : 3 
Textbox[4] : 1 

'1'이 두 번 입력되었다는 경고가 표시됩니다.

function findDuplicates (obj) { 
    var inputs = document.getElementsByName('analog_idorder[]'); 
    var answers= new Array(); 

    for(var ii = 0; ii < inputs.length; ii++) { 
     if(inputs[ii].type == 'text') { 
      for(var jj = 0; jj < answers.length; jj++) { 
       if(answers[jj] == inputs[ii].value) 
        alert('Duplicate Id_order number'); 
       return false; 
      } 
      answers.push(inputs[ii].value); 
     } 
    } 
    return true; 
} 

그러나 첫 번째 두 개의 텍스트 상자가 확인 :

나는 다음 시도했다.

이 문제를 어떻게 해결할 수 있는지 알려주십시오. 에 자리 잡은 루프에서 if 문에 대한

+0

당신은 확신했다 적이을 그 이름, analog_idorder [], 실제로 모든 텍스트 상자에서 동일합니까? 경고 (inputs.length)를 시도하십시오; 2 행에서 발견 된 텍스트 상자의 수를 확인합니다. 또한 'text'철자가 틀린 경우 유형 매개 변수로 텍스트 상자로 표시되지만 첫 번째 기준은 충족시키지 못합니다. 첫 번째 'if'다음에 경고 (ii)를 시도하십시오. –

+0

duplicate : http://stackoverflow.com/questions/1119495/javascript-multiple-input-textbox-validation – peirix

+0

어, 처음 네 개의 답변도 있습니다. ...? – seth

답변

1

를 추가해보십시오 괄호 : 그렇지

  for(var jj = 0; jj < answers.length; jj++){ 
       if(answers[jj] == inputs[ii].value){ 
        alert('Duplicate Id_order number'); 
        return false; 
       } 

      } 

루프는 항상 첫 번째 반복에서 false를 반환합니다.

+0

감사합니다 Baversjo 나는 밖으로 시도하고 알려드립니다. – Murugesh

1

당신은 제거 할 수있는 모든 당신이 본 것 값을 저장하는 연관 배열을 사용하여 일을 반복 :

var answers = document.getElementsByName("analog_iorder[]"); 
var seen = {}; 

function checkForDupes() { 
    for (var i=0;i<answers.length;i++) { 
    if (seen[ answers[i].value ]) { 
     alert("Duplicate "); 
     return false; 
    } 
    seen[ answers[i].value ] = true; 
    } 
    return true; 
} 
1
Text 1: <input type="text" id="txt1" onblur="chkValue('txt1');" /><br/> 
Text 2: <input type="text" id="txt2" onblur="chkValue('txt2');" /><br/> 
Text 3: <input type="text" id="txt3" onblur="chkValue('txt3');" /><br/> 
Text 4: <input type="text" id="txt4" onblur="chkValue('txt4');" /><br/> 
Text 5: <input type="text" id="txt5" onblur="chkValue('txt5');" /><br/> 
Text 6: <input type="text" id="txt6" onblur="chkValue('txt6');" /><br/> 
Text 7: <input type="text" id="txt7" onblur="chkValue('txt7');" /><br/> 
Text 8: <input type="text" id="txt8" onblur="chkValue('txt8');" /><br/> 
Text 9: <input type="text" id="txt9" onblur="chkValue('txt9');" /><br/> 
Text 10: <input type="text" id="txt10" onblur="chkValue('txt10');" /><br/> 

<script type="text/javascript"> 
var vals=new Object(); 

function chkValue(a) 
{ 
    var t=document.getElementById(a); 

    if(vals[t.value]) 
    { 
     if(vals[t.value] != a) 
     { 
      alert("You have already entered ["+t.value+"]"); 
      t.value=""; 
     } 
    } 
    else 
    { 
     vals[t.value] = a; 
    } 
} 

</script>