问题描述
- 应该怎么改这个js?关于focus
-
代码如下。
在第二个input里输入完东西之后回车,会再自动addlist。然后现在想让他光标自动聚焦到新增的一行的weight输入框里。
目前写的代码里,第二个输入框输入完东西,回车后都是跳到第一行的weight输入框的。应该怎么去修改呢?
function addList(){ var operate_id=$("#last_operate_id").val(); operate_id=parseInt(operate_id)+1; if (operate_id==1000) { operate_id=1; } $("#last_operate_id").val(operate_id); var html = '<tr>' +'<td><input class="form-control" id="weight" name="weight[]" onkeydown="javascript:if(event.keyCode==13) return false;" type="text" "></td>' +'<td><input class="form-control" id="express_id" name="express_id[]" type="text" onkeydown="javascript:if(event.keyCode==13) {addList(); setfocus(); return false; } "></td>' +'<td><input class="form-control" id="remark" name="remark[]" type="text" onkeydown="javascript:if(event.keyCode==13) return false;"></td>' +'<td><input class="form-control" id="operate_id" name="operate_id[]" type="text" readOnly="readOnly" value="'+operate_id+'" ></td>' +'<td><button type="button" class="add btn btn-info dropdown-toggle" onclick="delList(this)">删除</button></td>' +'</tr>'; $("#parcel_goods").append(html); var rows= $("#parcel_goods").find("tr").length-1; document.getElementById('num').innerHTML=rows; //$(html).appendTo("#parcel_goods"); } function setfocus(){ document.getElementById("weight").focus(); }
解决方案
你id重复了,要通过DOM关系获取setfocus(this);
+'<td><input class="form-control" id="express_id" name="express_id[]" type="text" onkeydown="javascript:if(event.keyCode==13) {addList(); setfocus(this); return false; } "></td>'
function setfocus(ipt){///////////
var tr=ipt.parentNode.parentNode;
var ipts=tr.getElementsByTagName('input');
ipts[0].focus();
}
解决方案二:
id 写的不对 ,把你的id改一下
解决方案三:
楼上都说过了,做程序要细心。
时间: 2024-11-01 13:00:02