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

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 に答える