要将文本字段的光标从活动文本字段移动到新附加的文本字段,仅当活动文本字段已填充时,才从键盘按下回车键
To move cursor of textfield from active one to newly appended textfield on enter key pressed from keyboard only if active textfield is filled
html
<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>
<tfoot>
<tr>
<td>Total</td>
<td>
<label id="total">0</label>
</td>
</tr>
</tfoot>
jquery
$('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);
}
else{
var $itemNum = $('#tbody tr');
if($itemNum.find('input').val().length > 0)
{
var itemNum = $('#tbody tr').length + 1;
var newRow = '<tr>'+
'<td>Item'+itemNum+'</td>'+
'<td>'+
'<input type="text" class="elm">'+
'</td>'+
'</tr>';
$('#tbody').append(newRow);
}
}
});
我正在使用上面的代码在用户输入时动态添加数字值,通过在键盘中按 Enter 键附加新的文本字段,而不管用户输入的输入数量如何并自动计算其输出。通过按Enter键,我应该仅在用户在以前的文本字段中输入值后附加新的文本字段,并且光标应自动移动到新的文本字段。但是在我的代码中,它只发生在第一个文本字段,而对其他文本字段不同,请帮助我编码我是 JavaScript 的新手。
http://jsfiddle.net/72ene5ob/
嘿,看起来您只想检查最后一个输入字段的长度。 因此,只需将.last()
添加到您的选择器中:var $itemNum = $('#tbody tr').last();
$('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);
}
else{
var $itemNum = $('#tbody tr').last();
if($itemNum.find('input').val().length > 0)
{
console.log('should add new input');
var itemNum = $('#tbody tr').length + 1;
var newRow = '<tr>'+
'<td>Item'+itemNum+'</td>'+
'<td>'+
'<input type="text" class="elm">'+
'</td>'+
'</tr>';
$('#tbody').append(newRow);
}
}
});
我扩展了David Karlsson的答案,在else块中添加了以下代码行作为最后一行:
$('#tbody tr:last-child td:last-child input').focus();
之后,新添加的行的输入获得焦点。
小提琴
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 当设置addFromAutocompleteOnly时,剩余文本将保留在输入字段中
- 使用jquery将输入字段转换为文本
- 如何从查询字符串中的输入字段发回文本
- 表单输入字段随着溢出的文本而增长
- 使用单个文本框向多个字段添加严格搜索
- 使用javascript提交表单并从字段/单选框/复选框/文本区域获取数据
- 使用jQuery的输入字段文本换行
- 向使用jQuery加载DOM后添加的字段添加不受限制的文本输入DatePickers
- 当用户单击按钮(在光标位置)时,在输入字段中添加一个文本字符串
- 如何根据文本长度立即显示和隐藏字段?-JQuery
- 当输入字段(文本框)有值时,选中/取消选中复选框
- 重置时输入字段文本css
- 将输入字段文本放入变量中并将其用于 jquery JSON get 请求
- 在 html 输入字段 (文本框) 中插入 javascript (jquery) 变量
- 搜索字段文本没有't在FF 3.6中显示
- 主干集合url操作与输入字段文本
- 如何大写输入字段文本的第一个字母,而键入javascript
- 如何使用angularjs在同一字段中键入时动态格式化输入字段文本
- 如何将输入字段(文本框)添加到使用jQuery动态创建的表中