2013-08-20 15 views
0

我創建了一個由ID填充的輸入字段,稍後我將使用該字段在我的數據庫中通過javascript進行查詢。使用foreach循環,這些字段由其各自的ID正確填充。使用javascript我希望能夠訪問這個id,但是,使用基於它們的類名的onclick函數,第一個和第二個輸入字段的值是唯一的字段,它返回正確的id值,其餘的輸入字段從id值爲2的第二個輸入字段中取值,而不是返回正確的id值。這有什麼問題?我怎樣才能從這個輸入字段中檢索正確的id值?非常感謝。這裏是我的代碼使用由輸入類引用的javascript輸入字段中的值的不準確檢索

查看:

<?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

enter image description here

點擊與值id輸入場2

enter image description here

點擊剩餘的輸入字段給出相同的輸出

enter image description here

+1

也許把PHP的HTML輸出放在這裏,因爲我們無法知道你的PHP腳本是在迴應什麼。甚至更好,也許增加一個jsFiddle這一切,我們可以嘗試從那裏幫助你。 –

回答

1

的問題是你需要在你的js中使用this關鍵字。否則,你只會在第一次出現該類時獲得元素。同時考慮到所有的輸入字段具有「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無效,並可能在稍後導致問題。

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()); 
});