1

我有这样的东西

<td class="standaard_klein" align="right">
  <div class="timereg<?php echo $TEL;?>" id="timereg<?php echo $TEL;?>">
    <i contenteditable><?php print(number_format($line2['WERKUREN'], 2, ',','')); ?>
    </i>
  </div>
</td>
<input type="hidden" name="hist_id" id="hist_id<?php echo $TEL;?>" value="<?php echo $line['ID'];?>">
<input type="hidden" name="counter" id="counter" value="<?php echo $TEL;?>">

和这个 JS 函数

<script type="text/javascript" language="javascript">
      var counter = document.getElementById('counter').value;
      $('#timereg'+counter).keypress(function(event){
            if(event.keyCode == 13){
            var x = document.getElementById('timereg'+counter).textContent;
            var y = document.getElementById('hist_id'+counter).value;
            $('#timereg'+counter).load('change_timereg.php?newtime=' + x + '&user=<?php echo $_SESSION['loginid'];?>&hist_id='+ y);
            }
       });

</script>

但它只得到第一个“计数器”元素。如何修改函数以获取特定的“计数器”?$TEL 是我想要获得的计数器值。(通常是 $i 但这里使用了 $TEL)。

解决方案:jsfiddle.net/qmtGK 感谢 Jacob Amerz

4

2 回答 2

1

假设你写

 <input type="hidden" name="counter" id="counter" value="<?php echo $TEL;?>">

不仅一次,而且在循环中,您对许多元素使用相同的 id,这是行不通的。

我可以建议一种不同的方法吗?给每个 div 相关的计数器并附加一个共享类

<div class="timereg<?php echo $TEL;?> shared_class" related-counter="counter<?php echo $tel;?>" id="timereg<?php echo $TEL;?>">
    <i contenteditable><?php print(number_format($line2['WERKUREN'], 2, ',','')); ?>
    </i>
</div>


<input type="hidden" name="counter" id="counter<?php echo $tel;?>" value="<?php echo $TEL;?>">

然后是js:

    $('.shared_class').keypress(function(event){
        if(event.keyCode == 13){
           // ... whatever you want to do
           related_counter = $(this).attr("related-counter");               
           $("#"+related_counter).load('change_timereg.php?newtime=' + x + '&user=<?php echo $_SESSION['loginid'];?>&hist_id='+ y);
        }
    });
于 2013-06-10T10:18:55.163 回答
0

问题是您在页面加载时仅读取一次计数器的值。
您需要做的是,当enter key按下 时,您需要找出对应的计数器值。

$('#timereg'+counter).keypress(function(event){
    if(event.keyCode == 13){
        var counter = $(this).closest('td').find(':input[name="counter"]').val();
        var x = document.getElementById('timereg'+counter).textContent;
        var y = document.getElementById('hist_id'+counter).value;
        $('#timereg'+counter).load('change_timereg.php?newtime=' + x + '&user=<?php echo $_SESSION['loginid'];?>&hist_id='+ y);
    }
});
于 2013-06-10T09:59:00.623 回答