1
$(document).keyup(function(e){
         var idd = $(".hidd").val();// Here i can't get the correct value of "class hidd" and always get value 1

         var sss = ".comment_tarea" + idd;
          $tArea = $(sss);
          alert(sss);
        if ($tArea.is(":focus") && e.keyCode == 13) {
        var t = $tArea.val();  
    }  
     }); 
        $id1=0;
     while(...){
                $id1++;
        <form >
          <?  $t =$id1; $comment_tarea = "comment_tarea".$t; 
              echo("comment");
              echo($comment_tarea);
          ?>
        <textarea class="<? echo $comment_tarea; ?>" name="tarea"></textarea>
    <input type="hidden" class="hidd" value="<?php  echo htmlspecialchars($id1); ?>" />
        </form>

}

Jquery関数では、すべてのtextareaのクラス "hidd"の変数iddに常に値1があります。これは、 "comment_trea1"、 "comment_trea2"、 "comment_trea3"、 "comment_trea4"、...などの$comment_tareaのすべてのクラスを意味します。 ...ansなど。ここで、textarea入力値は一意の$id1によって変更されます。正しいidd値を取得するには、「comment_trea1」の場合はidd = 1を取得し、「comment_trea2」の場合はidd = 2を取得し、「comment_trea3」の場合はidd=3を取得します。

4

2 に答える 2

2

.val()は、最初に一致した要素の値のみを返します。

実行する必要があるのは、一致するすべての要素に対して.val()を呼び出すことです。

$(".hidd").each(function() {
  alert($(this).val());
});
于 2012-12-22T17:09:00.533 に答える
0

val()セレクターで使用している場合、常にゼロインデックスの要素の値を返します。one存在する場合、インデックスの要素の値を取得するには、次を使用できます。$(".hidd").eq(1).val();

keyupドキュメントでバインドするよりも、テキスト領域でバインドする方がよいでしょう。ループ内でフォームを生成し、ループを繰り返すたびに、非表示フィールドを持つテキストエリアが生成されます。フォームtextareaを使用relateして非表示フィールドを作成できます。enclosing

$("textarea[name=tarea]").keyup(function(e){
     var idd = $(this).closest('form').find('.hidd').val();
      //your code
}  
于 2012-12-22T17:08:52.697 に答える