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。

要对所有输入单元格仅使用一个 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) { 我的意思是如果我点击任何输入单元格

使用 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 回答