2011-03-20 3 views
1

안녕하세요, 저는 의심합니다. 사용자 입력 측면을 추가하는 기능이 있습니다.추가 기능 <SPAN>

또한 오류가 발생합니다. 나는 비록 한 번 사람이 버튼을 여러 번 클릭한다고해도 한 번만 원했다. 추가하지 않으면 입력 후 스캔합니까

내 코드.

//th = Name of the input that will add, at the low <SPAN> 

     if(d.length == 0){ 
      $(th).after('<SPAN class="erro">'+txt+'</SPAN>'); 
      this.focus(); 
      return false; 
     } 

나는 도움에 매우 감사 할 것입니다. :)

답변

0

당신은 $.find에 처음 span.error를 검색하고 있이 있지 않은 경우에만 추가해야합니다

if(d.length == 0){ 
     var errorSpan = $(th).find("span.error").length; 
     if(!errorSpan) { 
      $(th).after('<SPAN class="erro">'+txt+'</SPAN>'); 
      this.focus(); 
     } 
     return false; 
    } 
+0

덕분에 같이 있어야한다, 그래서 나는 더 많은 노력 여기서 일하지 않은 것입니다. var errorSpan = $ (th)입니까? find ("span.error). length; var errorSpan = $ (th). prev ("span.error). 길이; 여기서 "errorSpan"값 = 0 – user628298

+0

@ user628298 : span.error "가 아닌"span.error' - 오타가 있습니까? – Jon

+0

덕분에 이제 부모님이 있습니다. $ (th) .parents (". diinput"). find ("span.erro"). 길이; – user628298

0

jQuery One. 요소에 대한 이벤트에 핸들러를 연결하십시오. 핸들러는 요소 당 최대 한 번만 실행됩니다.

$('#yourbuttonid').one('click', function() { 
    if(d.length == 0){ 
     $(th).after('<SPAN class="erro">'+txt+'</SPAN>'); 
     this.focus(); 
     return false; 
    } 
}); 
0

가 한 번만 발생하게 $('selector').one('click', function(e) { /* your code */ });을 사용하여 이벤트를 등록합니다. th 입력 이름 (문자열) 인 경우

, 당신의 선택은 $('input[name='+th+']') 대신 $(th)