0

ID が入力された入力フィールドを作成しました。後でこれを使用して、javascript を介してデータベースにクエリを作成します。foreach ループを使用して、フィールドにそれぞれの ID が正しく入力されました。javascript を使用してこの ID にアクセスできるようにしたいのですが、クラス名に基づく onclick 関数を使用すると、最初と 2 番目の入力フィールドの値だけが正しい ID 値と残りの入力フィールドを返すフィールドになります。正しい ID 値を返す代わりに、ID 値が 2 の 2 番目の入力フィールドから値が取得されました。これの何が問題なのですか?この入力フィールドから正しい ID 値を取得するにはどうすればよいですか? どうもありがとう。これが私のコードです

意見:

<?php

     foreach($data_currencies as $row){

    ?>
     <div class="row-fluid">

            <div class="span2"><input type='checkbox' class="currency_check_box" id='chk' name='currency_id[]'  value="<?php echo $row->id; ?>" /></div>
            <div class="span4" style="text-color:black;"><?php  echo anchor("currencies/edit_currency/$row->id/$tennant_id",$row->pretty_name);?></div>
            <div class="span4" style="text-color:black;"><?php  echo $row->currency_code;?></div>
            <div class="btn-group span1" id="condition" data-toggle="buttons-radio" >
            <?php if($row->status==1) { ?>
            <input type="text" value="<?php echo $row->id; ?>" class="btn active first" id="enable"/>
            <input type="text" value="<?php echo $row->id; ?>" class="btn passive" id="disable"/>
            <?php }
             else{ ?>
            <input type="text" value="<?php echo $row->id; ?>" class="btn off" id="enable"/>
            <input type="text" value="<?php echo $row->id; ?>" class="btn active on" id="disable"/>
            <?php } ?>
            </div>
     </div>
    </address>
    <address>
     <?php
     }
     ?>

Javascript

<script type="text/javascript">


$(".first").click(function(){
   alert($(".first").val());
});

$(".passive ").click(function(){
   alert($(".passive").val());
});

$(".off").click(function(){
   alert($(".off").val());
});

$(".on ").click(function(){
   alert($(".on").val());
});

</script>

出力:

ID値1の入力フィールドをクリック

ここに画像の説明を入力

ID値2の入力フィールドをクリック

ここに画像の説明を入力

残りの入力フィールドをクリックすると、同じ出力が得られます

ここに画像の説明を入力

4

2 に答える 2

1

これを試して

$(".first").click(function(){
   alert($(this).val());
});

$(".passive ").click(function(){
   alert($(this).val());
});

$(".off").click(function(){
   alert($(this).val());
});

$(".on ").click(function(){
   alert($(this).val());
});
于 2013-08-20T14:53:01.140 に答える
1

this問題は、js でキーワードを使用する必要があることです。それ以外の場合は、そのクラスが最初に出現した要素を取得するだけです。また、すべての入力フィールドに「btn」クラスがあることを考慮して、jsをに変更してみませんか

$(".btn").click(function(){
   //Use 'this' to get the value of the element you clicked on
   alert($(this).val());
});

注: PHP コードで行をループしていますが、毎回要素に同じ ID (id="enable" および id="disabled") を与えています。これにより、複数の要素が同じ ID を持つことになり、HTML が無効になり、後で問題が発生する可能性があります。

于 2013-08-20T16:09:06.203 に答える