根据你提供的-------------------------代码(1)--------------------------
src.innerHTML='<select onblur="EditEnd(this)"><option>北京</option><option>上海</option><option>广州</option></select>';
其中select的option集合中的每一项value都是为空。所以下面的函数中strVal=src.value会取得一个空串“”,显示的时候什么也显示不出来。
-------------------------代码(2)--------------------------
function EditEnd(src){
var strVal=src.value;
var objTd=src.parentElement;
objTd.innerHTML="";
objTd.innerText=strVal;
}====================解决方法=================================
1.代码(1)做以下改动,代码2不改
src.innerHTML='<select onblur="EditEnd(this)"><option value="北京">北京</option><option value="上海">上海</option><option value="广州">广州</option></select>';1.代码(2)做以下改动,代码1不改
function EditEnd(src){
var strVal=src.options[src.selectedIndex].text;
var objTd=src.parentElement;
objTd.innerText=strVal;
}

解决方案 »

  1.   

    找一个用户注册的页面下下来看下源文件(或者一个bbs网站源码什么的,有类似页面就行),一般都有地址选择,另外一般会牵涉到数据库,地区a对应的东西要到表里面读
      

  2.   

    还有一点小问题 在td转换成下拉框后 如何将下拉框的选定值定位啊 与原来td中显示的一样??
      

  3.   

    改写EditTdSelectArea为
    function EditTdSelectArea(){
    var src=window.event.srcElement;
    if(src.tagName!="TD") return;
    var strVal=src.innerText;
    src.innerHTML='<select onblur="EditEnd(this)"><option>北京</option><option>上海</option><option>广州</option></select>';
    var oDes = src.children[0];
    for(var i=0;i<oDes.options.length;i++){
    if(oDes.options[i].text == strVal)oDes.options[i].selected = true;
    }
    src.children[0].focus();
    }