我现在就是想去掉text中的逗号<td class="tdInputTitle">员工姓名</td>
            <td class="tdInputObj">
             <input type="text" class="textInput" name="username" id="username" value="" maxlength="60" readonly onpropertychange="removethedot()"/>
<input type="hidden" name="usernameids" id="usernameids" value="" />
<input type="button" class="btn" onclick='openWindow(1,"username",1)' style="cursor: pointer;" value="查找" />
            </td>
removethedot方法定义如下function removethedot(){
document.getElementById("username").value = document.getElementById("username").value.replace(",","");
}我去掉是去掉了,但总报堆栈溢出:Stack overflow at line:0,不知这个错误从何而来啊

解决方案 »

  1.   

    是这样的LZ在removethedot中又改变了document.getElementById("username").value 的值,又触发了onpropertychange事件,造成了死循环,所以报错
    解决方法有2种
    1.因为onpropertychange是IE特有的,可以使用onkeydown/up事件
    2.
    function removethedot(){var str = document.getElementById("username").value;
    if(!/,/.test(str)) return false;
    document.getElementById("username").value = str.replace("\,","");
    }
    解除死循环就行了
      

  2.   

    堆栈溢出几乎都是陷入死循环了. document.getElementById("username").value = document.getElementById("username").value.replace(",","");在监听change时死了.同1L方法