把上面的源程序copy到html文件中,选择select列表中某一项后,就报js错了

解决方案 »

  1.   

    点一次,你选择第一项,不提示AAAAAAAAAAAAA,却提示空,你指的是这个错误?
    再次选择第二项BBBBBBBBBBB,提示AAAAAAAAAAAA
    我这里没有其他的脚本错误啊
      

  2.   

    兄弟,我这里报JS错误,在IE的左下角,点一下那个错误后,detail information:
    Line:54
    Char:4
    Error:'document.frmOrder.slnBillTo_Name.options' is null or not an object
    Code:0
    URL:..................
      

  3.   


    <html>
    <body>
    <script> function FixWidth(selectObj) 

        if (document.a !=undefined && document.b !=undefined) 
    RollbackWidth(document.b,document.a) 
        var newSelectObj = document.createElement("select");     newSelectObj = selectObj.cloneNode(true); 
        newSelectObj.selectedIndex = selectObj.selectedIndex; 
        newSelectObj.onmouseover = null;        var e = selectObj; 
        var absTop = e.offsetTop; 
        var absLeft = e.offsetLeft; 
        while(e = e.offsetParent) 
        { 
            absTop += e.offsetTop; 
            absLeft += e.offsetLeft; 
        } 
        with (newSelectObj.style) 
        { 
            position = "absolute"; 
            top = absTop + "px"; 
            left = absLeft + "px"; 
            width = ""; 
        } document.a = newSelectObj; 
    document.b = selectObj; 
        var rollback = function(){ RollbackWidth(selectObj, newSelectObj); }; 
        newSelectObj.focus(); 
        newSelectObj.onblur = rollback; 
        selectObj.style.visibility = "hidden"; 
        document.body.appendChild(newSelectObj); } function RollbackWidth(selectObj, newSelectObj) 

        selectObj.selectedIndex = newSelectObj.selectedIndex; 
        selectObj.style.visibility = "visible"; 
        document.body.removeChild(newSelectObj); 
        document.a= undefined 
    } function HandleChange() 

    //alert("11111") 
    //alert(document.frmOrder.slnBillTo_Name.options[document.frmOrder.slnBillTo_Name.selectedIndex].text); 
    var sel = document.getElementById("slnBillTo_Name");
    alert(sel.options[sel.selectedIndex].text);
    } </script> <form METHOD="POST" NAME="frmOrder"> 
        <SELECT NAME="slnBillTo_Name" id="slnBillTo_Name" class="smallTextNew"  width=185 style="width: 185px" onmouseover='FixWidth(this)' onChange="javascript:HandleChange();"> 
        <option value=SELECT> </option> 
        <option value="11"> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA </option> 
        <option value="22"> BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB </option> 
        <option value="33"> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC </option> 
        </SELECT> 
    </form>
    </body>
    </html>
      

  4.   

    晕,害我整半天<option value="33"> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC </option> 
    </SELECT> 
    <form> 最后一个<form> 标签
      

  5.   


    <form METHOD="POST" NAME="frmOrder">
    <SELECT NAME=slnBillTo_Name class=smallTextNew  width=185 style="width: 185px" 
    onmouseover='FixWidth(this)' 
    onChange="javascript:HandleChange();">
    <option value=SELECT> </option>
    <option value="11"> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA </option>
    <option value="22"> BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB </option>
    <option value="33"> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC </option>
    </SELECT>
    <form>
    〈/form〉是这个原因,呵呵
      

  6.   

    是的,有<from>的问题,把我头都搞昏了
    但现在的问题是,得到的结果总和选择的不一样,就是上一次选择的结果.这是一个大问题啊
      

  7.   

    function HandleChange()
    {
    //alert("11111")
    var o=document.frmOrder.slnBillTo_Name
    alert(o.options[o.selectedIndex*1+1].text);
    }
      

  8.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <title>Untitled Document</title>
        </head>
        <body>
            <script>
                
                function FixWidth(selectObj){
                    if (document.a != undefined && document.b != undefined) 
                        RollbackWidth(document.b, document.a)
                    var newSelectObj = document.createElement("select");
                    
                    newSelectObj = selectObj.cloneNode(true);
                    newSelectObj.selectedIndex = selectObj.selectedIndex;
                    newSelectObj.onmouseover = null;
                    
                    var e = selectObj;
                    var absTop = e.offsetTop;
                    var absLeft = e.offsetLeft;
                    while (e = e.offsetParent) {
                        absTop += e.offsetTop;
                        absLeft += e.offsetLeft;
                    }
                    with (newSelectObj.style) {
                        position = "absolute";
                        top = absTop + "px";
                        left = absLeft + "px";
                        width = "";
                    }
                    
                    document.a = newSelectObj;
                    document.b = selectObj;
                    var rollback = function(){
                        RollbackWidth(selectObj, newSelectObj);
                    };
                    newSelectObj.focus();
                    newSelectObj.onblur = rollback;
                    selectObj.style.visibility = "hidden";
                    document.body.appendChild(newSelectObj);
                    
                }
                
                function RollbackWidth(selectObj, newSelectObj){
                    selectObj.selectedIndex = newSelectObj.selectedIndex;
                    selectObj.style.visibility = "visible";
                    document.body.removeChild(newSelectObj);
                    document.a = undefined
                }
                
                function HandleChange(obj){
                    //alert("11111")
       alert(obj.options[obj.options.selectedIndex].text);
                }
            </script>
            <form METHOD="POST" NAME="frmOrder">
                <SELECT id="sel1" NAME=slnBillTo_Name class=smallTextNew width=185 style="width: 185px" onmouseover='FixWidth(this);' onchange="javascript:HandleChange(this);">
                    <option value=SELECT></option>
                    <option value="11">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA </option>
                    <option value="22">BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB </option>
                    <option value="33">CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC </option>
                </SELECT>
            </form>
        </body>
    </html>
      

  9.   

    不明白具体原因,
    不过看来,这个时候通过名字访问到的属性值还是旧的。
    大概是在这个事件之后才真正把DOM的对象进行更新的吧。
      

  10.   

    function HandleChange(obj){
        //alert("11111")
        alert(obj == document.frmOrder.slnBillTo_Name);
    }
    发现onchage的时候,
    obj 并不等于 document.frmOrder.slnBillTo_Name;