0

我创建了一个由 id 填充的输入字段,稍后我将使用它通过 javascript 在我的数据库中进行查询。使用 foreach 循环,这些字段由它们各自的 id 正确填充。使用 javascript 我希望能够访问此 id,但是,使用基于其类名的 onclick 函数,第一个和第二个输入字段的值是唯一返回正确 id 值和其余输入字段的字段值取自 id 值为 2 的第二个输入字段,而不是返回正确的 id 值。这有什么问题?我怎样才能从这个输入字段中检索正确的 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

问题是你需要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 回答
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 回答