2011-08-25 4 views
0

내가 추천 입력 상자가 있습니다jQuery는 중복 된 URL을 감지합니까?

<input id="0" type="text" class="test" /> 
<input id="1" type="text" class="test"/> 
<input id="2" type="text" class="test"/> 

나는 나는 그들이> 1 상자 중 하나를 동일한 URL을 입력 한 경우 중복 데이터는이 사용자에게 경고 할 감지 할 수있는 방법을 알아 내려고 노력하고 있어요?

나는 jsFiddle - http://jsfiddle.net/PLacj/을 가지고있다.

누구든지 도와 줄 수 있습니까? 여기

+0

'www.google.com', 'http : // www.google.com'및 'google.com'을 동일한 URL로 간주 하시겠습니까? –

+0

@Tom - 숫자가있는 ID의 시작을 ** 안 **하는 것이 가장 좋습니다 (그리고 정확합니다). – Neal

+0

@sam dufel - 예, REGEX로 생각했지만 가장 좋은 옵션인지 확실하지 않았습니다. – Tom

답변

0

당신은 갈 :

$('.test').blur(function() { 
    var self = this; 
    var value = this.value; 
    $('.test').not(this).each(function(){ 
     if(value == this.value && this.value.length > 0){ 
      alert('cannot do that!'); 
      self.value = ''; 
      return false; 
     } 
    }) 
}); 

바이올린 : http://jsfiddle.net/maniator/PLacj/2/ 당신이 가서 여기

+0

와우 감사합니다. val() 제거를 정말 좋아해요 :) +1 +1 – Tom

+0

@Tom - 그냥 '+ 1'을 말하는 것은 아무 의미도 없습니다. 기억하십시오 - 당신이 대답을 찾으면, 그것을 upvote, 그리고 할 수있을 때, 그것을 허용으로 표시하십시오 :-) – Neal

+0

네,하지만 나는 10 분 동안 또는 뭔가를 허용하지 않으므로 아직 답을 받아 들일 수 없습니다 :) – Tom

0

작업 demo

$(function(){ 

    $('.test').blur(function() { 
     var isDup = false, val = $(this).val().toLowerCase(); 
     $('.test').not("#"+this.id).each(function(){ 
      if($(this).val().toLowerCase() == val){ 
       isDup = true; 
      } 
     }); 

     if(isDup){ 
      alert("Duplicate"); 
     } 
    }); 
}); 
+0

당신은 다음과 같이 할 수 있습니다 :'$ ('. test') 아닙니다 (this)' – Neal

+0

@Neal - 동의합니다. 하지만 우리가 선택자를 전달하면'jQuery'가 객체 비교 대신 비교하기가 쉽다. – ShankarSangoli

+0

하지만 두 번째 검색이 필요합니다. – Neal