0

これは動作サンプルです。

<tr>
  <td><input type="text" name="date_day1" id="date_day1" value=" size="1"></td>
</tr>
<tr>
  <td><input type="text" name="date_day2" id="date_day2" value=" size="1">
  <script type="text/javascript">
  $(document).ready(function(){
    $("#date_day2").on('click', function(e) {
      var name1 = $('#date_day1').val();
      if(e.ctrlKey) $("#date_day2").val(name1);
    });
  });
  </script>
</td>
</tr>
<tr>
  <td><input type="text" name="date_day3" id="date_day3" value=" size="1"></td>
</tr>

つまり、date_day1 に何かを入力してから Ctrl を押したまま date_day2 をクリックし、date_day1 の値を「コピーして貼り付け」て date_day2 にします。

他のすべての入力セルでこのような動作を得るには、入力セルごとに JavaScript を記述する必要があります。

すべての入力セルに対して 1 つの JavaScript のみを使用するために、コードを記述しようとしましたが、機能しません。

<script type="text/javascript">
$(document).ready(function(){
  $("#input").on('click', function(e) {
    var name1 = $(this).closest('tr').prev().find('td:eq('+$(this).closest('td').index()+')').find('input').val();
    if(e.ctrlKey) $("#input").val(name1);
  });
});
</script>

$("#input").on('click', function(e) {つまり、入力セルをクリックした場合

With var name1 = .... 上の入力セルから最も近い変数値を設定/定義します

if(e.ctrlKey) $("#input").val(name1); で つまり、ctrlKey を押すと、現在の入力セルの値は name1 になります。

コードの何が問題になっていますか?

4

2 に答える 2

0

間違ったセレクターを使用していると思います:

$('#input')

これは、属性id=を持つ要素を表しますinput。必要なものは次のとおりです。

$('input')

tagname=を持つ要素を表しinputます。また、値の割り当てのある行も変更する必要があります。

$(this).val(name1);
于 2013-04-15T07:53:44.473 に答える
0

これはイベント内では#inputなく、次を使用する必要があります。input$(this)

<script type="text/javascript">
  $(document).ready(function(){
    $("input").on('click', function(e) {
      var name1 = $(this).closest('tr').prev().find('td:eq('+$(this).closest('td').index()+')').find('input').val();

      if(e.ctrlKey) $(this).val(name1);
    });
  });
</script>
于 2013-04-15T07:53:57.487 に答える