jquery使用输入键多于两列输入文本输入时动态添加带有值的表行

时间:2012-11-01 07:54:57

标签: php jquery

1.HTML

<table  id="cstbl" border="1">
    <tr  bgcolor="#FFFFFF" align="center">
    <td>no</td>
    <td>item no</td>
    <td>descr</td>
    <td>uom</td>
    <td>qty</td>
    <td>upr</td>
    <td>disc</td>
    <td>sub</td>
    <td>x</td>
  </tr>
</table>
<br />
Enter barcode: 
<input type="text" name="barcode" id="barcode" />​

2.javascript

var index = 1;
$('input[name=barcode]').on('keyup',function(e){
  var code = (e.keyCode ? e.keyCode : e.which);
  if (code == 13) {
    $('table').append('<tr><td></td><td></td> <td></td><td></td><td></td> <td></td> <td></td><td></td><td></td> </tr>');    
    $('table tr:last td:first').html(index);
    $('table tr:last td:last').html($(this).val());
    $(this).focus().select();
    index++;
  }
});​

如果我想在第二列barcode中显示table cstbl的值,这是第i列中没有列,那么在javascript中替换td:last的脚本是什么?

我只知道只有:first:last选择器。

2 个答案:

答案 0 :(得分:0)

Yo可以在构建新行时直接添加这些值:

$('#cstbl').append(
'<tr>' +
    '<td>' + index + '</td>' +
    '<td>' + $(this).val() + '</td>' +
    '<td></td>' +
    '<td></td>' +
    '<td></td>' +
    '<td></td>' +
    '<td></td>' +
    '<td></td>' +
    '<td></td>' +
'</tr>');

或者过滤所有td以仅匹配第二个(在0索引数组中,这就是原因1):

$('table tr:last td').eq(1).html($(this).val());

答案 1 :(得分:0)

试试 Demo

var index = 1;
$('input[name=barcode]').on('keyup',function(e){
  var code = (e.keyCode ? e.keyCode : e.which);
  if (code == 13) {
    $('table').append('<tr><td></td><td></td><td></td><td></td><td></td><td></td><td> </td><td></td><td></td> </tr>');    
    $('tr:last td:eq(0)').html(index);
    $('tr:last td:eq(1)').html($(this).val());
    $(this).focus().select();
    index++;
  }
});​