2011-01-12 8 views
0

私はjavascriptが新しく、boxareaの文字カウントを決定し、文字数の長さの配列とカウントの長さを比較するスクリプトを作成しようとしています。 boxareaの数が所定の制限を超えている場合、配列要素は異なるクラスをトグルします。複数の文字数を持つ文字数

私は混乱しているんだ場合は、多分この(非常に悪い:*)スクリプトが役立ちます。

$(document).ready(function(){ 
    limit1.count = 10; 
    limit2.count = 15; 
    limit3.count = 20; 


    function getCount (textarea) { 
     var i=0; 
     for (i=0;i<=5;i++) 
     { 
     if(textarea.value.length > limit[i].count) { 
      $(limit[i].toggleClass("unavailable"); 
     } 
     } 
     } 
}); 
+0

1. limit1、limit2、limit3(どこに割り当てられていますか?) 2.どのように 'getCount'を呼び出しますか? 3.あなたのforループから来ているのはどこですか?なぜあなたは 'limit1'を持っていて、それを配列のように参照しようとしますか? 5.値が本当に長い場合(私はそれが表示され、トグルの数はトグルされていないように見えます)、クラスが複数回トグルされることを期待していますか。 –

+0

1,2,3等は私によって割り当てられます。私は、たとえば$(textarea).getCount();のような別のスクリプトでgetCountを呼び出すと仮定しています。制限は別のクラスを切り替えることを希望するdivの名前でもあります。私は完全な例を提供する必要がありますか? – Gabriel

答えて

1

これは、自分のスタイルでなければなりません:

<style type="text/css"> 
.box {width: 100px; height: 100px; display: block; margin: 10px; float: left; 
    background-color: green;} 
.unavailable {background-color: red;} 
</style> 

HTML:

<div><textarea name="textarea" id="textarea" cols="45" rows="5"></textarea></div> 

<div id="box1" class="box">Box 1</div> 
<div id="box2" class="box">Box 2</div> 
<div id="box3" class="box">Box 3</div> 

そして、javascript:

<script type='text/javascript' src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js" ></script> 
<script type='text/javascript'> 
    function validate() 
    { 
     var validation = { 
      '#box1': 10, 
      '#box2': 15, 
      '#box3': 20 
     }; 

     $.each(validation, function(elem, max) { 
      $(elem).removeClass("unavailable"); 
      if($('#textarea').val().length > max) 
       $(elem).addClass("unavailable"); 
     }); 
    } 

    $(document).ready(function(){ 
     $('#textarea').keydown(validate); 
     validate(); 
    }); 
</script> 
+0

エリック、ありがとう!間違いなく正しい軌道上にある。私のtextareaボックスが "quote"と呼ばれる場合は、$(quote).validate();のような別のスクリプトで関数を呼び出します。 ?次に、バリデーションカウント(例:id1、id2)も、クラスを変更したいdivの名前です。 – Gabriel

+0

IDは一意である必要があります。 '#id1'はIDなので、1つの要素(divまたはtextareaのいずれか)でのみ使用する必要があります。私は使用例を含めるために少し私の答えを変更しました。 –

+0

私はそれを試しましたが動作しません。あなたは問題を探す場所がわからない:( – Gabriel

関連する問題