To move cursor of textfield from active one to newly appended textfield on enter key pressed from keyboard only if active textfield is filled
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<table> <thead> <th>item</th> <th>Cost</th> </thead> <tbody id="tbody"> <tr> <td>Item 1</td> <td> <input type="text" class="elm" /> </td> </tr> </tbody> |
jQuery
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$(‘body’).on(‘keyup’,‘.elm’,function(e){ //Check Key Press is Enter if (e.keyCode != 13) { var sum = 0; $(‘.elm’).each(function() { if($(this).val() != ” && !isNaN($(this).val())){ sum += parseInt($(this).val()); } }); $(‘#total’).text(sum); |
我正在使用上面的代码在用户动态输入时添加数字值,方法是通过在键盘上按 Enter 键附加新的文本字段,而不管用户输入的输入数量如何,并自动计算其输出。通过按 EnterKey ,我应该仅在用户在前一个文本字段中输入值后才附加新的文本字段,并且光标应该自动移动到新的文本字段。
但在我的代码中,它只发生在第一个文本字段中,其他文本字段不同,请帮助我编码我是 javascript 新手。
http://jsfiddle.net/72ene5ob/
嘿,您似乎只想检查最后一个输入字段的长度。所以只需将
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
$(‘body’).on(‘keyup’,‘.elm’,function(e){ //Check Key Press is Enter console.log(e.keyCode); if (e.keyCode != 13) { console.log(‘Enter detected’); var sum = 0; $(‘.elm’).each(function() { if($(this).val() != ” && !isNaN($(this).val())){ sum += parseInt($(this).val()); } }); $(‘#total’).text(sum); if($itemNum.find(‘input’).val().length > 0) |
我通过在 else 块的最后一行添加以下代码行来扩展 David Karlsson 的答案:
1
|
$(‘#tbody tr:last-child td:last-child input’).focus();
|
随后,新添加的行的输入获得焦点。
小提琴
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/268756.html