qq_17847695 2015-09-07 05:14 采纳率: 100%
浏览 1560
已采纳

应该怎么改这个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();
}
  • 写回答

2条回答 默认 最新

  • 斯洛文尼亚旅游 2015-09-07 05:48
    关注

    你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();
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?