2013-02-05 2 views
0

양식의 모든 입력 필드에 대한 문자 카운터를 만들고 있습니다. 이것은 내가 그것을 떠날 때 내가 입력 필드에 초점을 맞출 때 내 스크립트, 그리고 나는 누르면 완료 할 때 키 이 http://jsfiddle.net/UQFD6/12/많은 ID 핸들

질문은 :

$(document).ready(function() { 
    $("#in1").keyup(function() { 
     $("#count1").text(50 - this.value.length); 
    }); 
    $("#in1").focus(function() { 
     $("#countainer1").show(); 
     $("#count1").text(50 - this.value.length); 
    }); 
    $("#in1").blur(function() { 
     $("#countainer1").hide(); 
    }); 
}); 

현재 작업을 볼 수 있습니다 :

각 ID에 대해 스크립트를 생성해야합니까?

I 의미 코드는 동일하지만 서로 다른 ID에 적용될 것이다 #input1#countainer1을 도시 #count1, #countainer2과 함께 다음 #count2#input2 수정 등.

내가 대신 ID의 클래스를 사용하여 생각하지만 컨테이너를 표시 할 때, 대신 나는에 쓰고 있어요 필드의 단지 하나의.

답변

0

내가 좋겠, 그 클래스의 모든 컨테이너를 표시합니다 예를

$(document).ready(function() { 
    $('input[id^=in]').each(function(){ // all inputs whose id starts with "in" 
     var i = this.id.slice(2); // finds "32" from "in32" 
     $(this).keyup(function() { 
      $("#count"+i).text(50 - this.value.length); 
     }).focus(function() { // let's chain 
      $("#countainer"+i).show(); 
      $("#count"+i).text(50 - this.value.length); 
     }).blur(function() { 
      $("#countainer"+i).hide(); 
     }); 
    }); 
}); 
+0

이 더 많거나 적은 내가하고 싶었던 것을,하지만 난 방법을 알고하지 않았다입니다. 나는 그것을 시험해 볼 것이다, 고마워! – gonfer

+0

당신이 메시지를 삭제 한 것을 볼 수는 있지만 어쨌든 나는 당신에게 대답합니다 : 아니요, 틀리게하지 마세요. 나는 당신의 코드 나 다른 것을 좋아하지 않는다고 말하는 것이 아닙니다. 그것은 단지 " keyup "또는"[id^= in] "을 예로들 수 있습니다. 저는 JQuery와 Javacript에서 매우 초보자입니다. 감사! – gonfer

+0

[ "시작 문자"선택기] (http://api.jquery.com/attribute-starts-with-selector/). 'keyup은 당신의 코드에 있었고, 나는 그것을 추가하지 않았습니다. –

1

아니, 당신은 #in1 대신 클래스를 사용할 수 있습니다 :이 제안 당신은 현재 ID 당신은 속성을 사용할 수있는 등

$(".in").keyup(function() { 

IN1, 평방인치을주는 요소 클래스의 를 추가 예를 들어, 현재 #in1과 연결된 요소 (예 : #in1) 중에서 선택해야하는 요소에 대한 data-id=1

var id = $(this).data('id'); 
$(".count[id='" + id + "']").text(...); 
+0

+1은'data-'속성에 대해 +1합니다. –

+0

나는 그것을 시험해 볼 것이다 Eric, 내가 작동하게되면 나는 나의 게시물을 업데이트 할 것이다. 감사! – gonfer

0

대신 클래스를 시도 할 수 있습니다 :

$(document).ready(function() { 
    $(".in").keyup(function() { 
     $(this).siblings(".count").text(50 - this.value.length); 
    }).focus(function() { 
     $(".countainer").show(); 
     $(this).siblings(".count").text(50 - this.value.length); 
    }).blur(function() { 
     $(this).siblings(".countainer").hide(); 
    }); 
}); 
+0

나는 형제 자매가 무엇인지 모르지만, 알아낼 것이다! 감사! – gonfer

+0

'.siblings()'는 동일한 레벨에서 elems를 찾는 것입니다. 귀하의 경우에는'input'이 있고 그 아래에 텍스트를 보여주는 div가 있습니다. – Jai