Jquery on Ctrl粘贴在上面输入的点击输入值中

时间:2013-04-15 07:46:07

标签: jquery

这是工作样本。

<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中的值“copy-paste”更改为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

代码有什么问题?

2 个答案:

答案 0 :(得分:0)

我猜,你使用了错误的选择器:

$('#input')

这个代表属性id = input的元素。你需要的是:

$('input')

它代表tagname = input的元素。 此外,还应更改具有值赋值的行:

$(this).val(name1);

答案 1 :(得分: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>