2013-10-29 1 views
0

안녕하세요 :) 자바 스크립트 문자 카운터가있는 HTML 텍스트 영역이 있습니다. 누군가가 "찾아보기"버튼을 클릭하여 작성중인 텍스트 영역에 미디어를 추가 할 때 남은 문자 수가 23 자만큼 줄어들길 원합니다. 나도 PHP를 사용하고있다. 내가 어떻게 해? :) 여기 onClick을 사용하여 Javascript 문자 나머지 카운터를 변경하는 방법?

는 HTML

<form id="form" method="post" action="" enctype="multipart/form-data"> 
     <div> 
      <label for="message2">Type your message</label> 
      <textarea ID="message2" onkeyup="textCounter(this,'counter',140);" name="status"></textarea> 
      Add Picture<input type="file" name="image" /><br /> 
      <input class="button" type="submit" value="Tweet" /><br /> 
     </div> 
    </form> 

그리고 JQuery와

<script> 
$(document).ready(function(){ 

    $("#message2").charCount({ 
     allowed: 140,  
     warning: 10, 
     counterText: '' 
    }); 
}); 

그리고 CharCount.js

(function($) { 

$.fn.charCount = function(options){ 

    // default configuration properties 
    var defaults = {  
     allowed: 140,  
     warning: 25, 
     css: 'counter', 
     counterElement: 'span', 
     cssWarning: 'warning', 
     cssExceeded: 'exceeded', 
     counterText: '' 
    }; 

    var options = $.extend(defaults, options); 

    function calculate(obj){ 
     var count = $(obj).val().length; 
     var available = options.allowed - count; 
     if(available <= options.warning && available >= 0){ 
      $(obj).next().addClass(options.cssWarning); 
     } else { 
      $(obj).next().removeClass(options.cssWarning); 
     } 
     if(available < 0){ 
      $(obj).next().addClass(options.cssExceeded); 
     } else { 
      $(obj).next().removeClass(options.cssExceeded); 
     } 
     $(obj).next().html(options.counterText + available); 
    }; 

    this.each(function() {    
     $(this).after('<'+ options.counterElement +' class="' + options.css + '">'+ options.counterText +'</'+ options.counterElement +'>'); 
     calculate(this); 
     $(this).keyup(function(){calculate(this)}); 
     $(this).change(function(){calculate(this)}); 
    }); 

}; 

}) (jQuery를)입니다;

+0

'.charCount'는 표준 jQuery 확장이 아닙니다. 어떤 확장 프로그램을 사용하고 있습니까? 그것이 자국인가, 아니면 표준인가? 그 정보가 없으면 질문에 대답하기가 힘들어 질 것입니다. –

+0

아, 내 큰, 더 큰 페이지에서 코드를 붙여 넣고 그것을 추가, 미안 지금 추가 놓친. –

답변

0

나는 이런 식으로하고 싶다고 생각합니다.

$(document).ready(showCounter); 
    $('#form input[type:submit]').on('click', function(){ 
     allowed - 23; 
    }, false); 

    var allowed = 140; 

    var showCounter = function(){ 
     $(".counter").remove(); 
     $("#message2").charCount({ 
      allowed: allowed,  
      warning: 10, 
      counterText: '' 
     }); 
    }; 
+1

charCount는 객체에 리스너를 추가하기 때문에 여러 번 호출하는 경우 이전 리스너를 지우는 코드를 추가해야합니다. 편집 : 당신 허용 된 변수를 외부화하여 계정 : –

+0

@ 브래디 절대적으로! –

1

최대 길이, 데이터 최대 길이 = "140"($를 사용하여 참조 할 수있다 (OBJ) .DATA ("최대 길이"뭔가를 결정하기 위해 오브젝트의 속성을 사용에서 charCount를 다시 쓰는 것이 이상적) jquery).

그런 다음 길이를 동적으로 조정할 수 있습니다. 코드에 찾아보기 단추가 표시되지 않으므로 필요에 따라 선택기를 업데이트하십시오.

$("browse").click(function() { 
    $("#message2").data("maxlength", 116).change(); 
    // calling change() triggers recalc of length 
}); 
+0

나는 이것에 동의한다. 또는'.setAllowed()'메소드를 작성할 수있다. –

관련 문제