php个人工作经验以及生活体会博客 php工作,生活

1一/121

对php100的第112讲(双击编辑异步更新)做下改进

张恩铭老师在php100第112课中讲到双击编辑异步更新,讲得详细到位,但是美中不足。
不足的地方是当对一个选框重复双击的时候会把上次给的

1
<input id='edit"+infd+inid+"' value='"+inval+"'>

再次付给选框就变成了

1
<input id='edit"+infd+inid+"' value='<input id='edit"+infd+inid+"' value='"+inval+"'>'>

这样不仅容易使我们的更新出错还影响美观,今天再遇到这个问题的时候我做了一点修改就可以解决这个问题:在对选框赋予html值的时候加入这样两行代码做下判断就可以了

1
2
3
4
var indexval=inval.indexOf("<input");
if(indexval==-1){
            $(this).html("<input id='edit"+infd+inid+"' value='"+inval+"'>");
        }

下面贴出详细的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$(document).ready(function(){
    $("tbody>tr>td[fd]").dblclick(function(){
        var inval=$(this).html();
        var infd=$(this).attr("fd");
        var inid =$(this).parents().attr("id");    
        var indexval=inval.indexOf("<input");
        if(indexval==-1){
            $(this).html("<input id='edit"+infd+inid+"' value='"+inval+"'>");
        }
        $("#edit"+infd+inid).focus().live("blur",function(){
            var editval=trim($(this).val());
            $(this).parents("td").html(editval);
            $.post("__APP__/admin/editmenuxx",{"id":inid,"fd":infd,"val":editval});//,function(data){alert(data);}
        });
    });
});
function trim(str){  //删除左右两端的空格
  return str.replace(/(^\s*)|(\s*$)/g, "");
}