function fkeyUp(ob) {
    ob.ivalue = fmoney2(ob.value,2);
}
说明:ivalue 是我自定义的一个属性,用于存放转换格式后的值,在调用fmoney2时提示对像不存在。
经测试,函数fmoney2中第一句alert(100);都不执行,请高手给予指教。不过以上情况是在IE6的情况下会有,IE8下完全正常。下面这个函数是在一个专门的js文件中,上面代友前已引用此文件。
/*
将ss转换成小数位为n的金额,并以,号分隔
*/
function fmoney2(ss, n) {
    alert(100);    if (ss != "") {
        if (!($.isNumeric(ss)))
            ss = RemoveDH(ss);        if ($.isNumeric(ss)) {
            var s0 = Math.abs(ss).toString().replace(".", "");
            var s1 = s0.substring(0, s0.length - n);
            var s2 = s0.substr(s0.length - n);            var s = "";
            var arr = s1.split("").reverse();
            for (var i = 0; i < arr.length; i++) {
                s += arr[i] + ((i + 1) % 3 == 0 && (i + 1) != arr.length ? "," : "");
            }
            if (ss >= 0)
                s = s.split("").reverse().join("") + "." + s2;
            else
                s = "-" + s.split("").reverse().join("") + "." + s2;            alert("return: " + s);
            return s;
        }
        else {
            if (ss == "-")
                return ss;
            else {
                alert(1);
                return " ";
            }
        }
    }
    else {
        alert(2);
        return " ";
    }
}

解决方案 »

  1.   

    function fkeyUp(ob) {
      ob.ivalue = fmoney2(ob.value,2);
    }
    首先你要确认ob是否存在,如果存在是不是对象,自定义属性的话,用setAttribute或getAttribute来设置和读取。不然肯定存在兼容问题。
      

  2.   

    连alert都没执行  那就是底下那个转换的函数都没运行.要么是上面的参数有问题.要么就是ob.ivalue = fmoney2(ob.value,2);都没执行成功.自己在这一句上面alert一下 检查下bo.value是不是undefined 如果是undefined的话 那肯定就不行了. .
      

  3.   

    我已确认过,ob.value是有值的,问题就出在fmoney2上,如果不用这个函数,直接ob.ivalue=ob.value,这样是没有问题的。
      

  4.   

    要就是别的地方出错了.你看看吧  是函数的回括号不见了阿  还是 哪里多了个逗号阿或者斜杠什么的  这样的情况就会出现 函数进的去 但是连第1行的alert都弹不出来..
      

  5.   

    ob是一个<input type=text ....>输入框