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, ""); } |