日期:2014-05-16  浏览次数:20403 次

javascript函数在IE上不能出效果,但是在chrom和FF上有。求解。。。
RT
本人新手。
写了一个javascript的click事件。在IE8上不能成功调用函数,
下面贴我的function
JScript code

function addRcvUser(userid,userenname)
{
    var textarea=document.getElementById("managertextarea");    
    var oldTextarea=textarea.innerHTML;
    if(oldTextarea.trim()=="")
    {
     textarea.innerHTML=userenname; 
    }else    textarea.innerHTML=oldTextarea+" , "+userenname;
    var receiver=document.getElementById("receiver");
    receiver.value=userid;
}


HTML的语句为:
HTML code

<select size=20>
        <%for(int i=0;i<size;i++){%>
        <option value="<%=users.get(i).getUserid()%>" id="selected_<%=users.get(i).getUserid()%>" onclick="addRcvUser(<%=users.get(i).getUserid()%>,'<%=users.get(i).getUserrename() %>')">
                <%=users.get(i).getUserrename() %>    
        </option>
        <%} %>
</select>




HTML code

<textarea name="managertextarea" id="managertextarea"  cols="54" rows="4" readonly="readonly">
     
  </textarea>




------解决方案--------------------
1:if(oldTextarea.trim()=="")//这个.trim()是你自己已经定义了的吗?
2:select的项值改变触发事件,你应该上移至select本身
HTML code
<select size=20 onchage="addRcvUser(this)">
<option value="<%=users.get(i).getUserid()%>" id="selected_<%=users.get(i).getUserid()%>">
                <%=users.get(i).getUserrename() %>    
        </option>
</select>
//函数修正

function addRcvUser(o)
{
   
    var userid=o.value;
    var userenname=o.options[o.selectedIndex].text;
    var textarea=document.getElementById("managertextarea");    
    var oldTextarea=textarea.innerHTML;
    if(oldTextarea.trim()=="")
    {
     textarea.innerHTML=userenname; 
    }else    textarea.innerHTML=oldTextarea+" , "+userenname;
    var receiver=document.getElementById("receiver");
    receiver.value=userid;
}

------解决方案--------------------
或者加上

String.prototype.trim= function(){
// 用正则表达式将前后空格
// 用空字符串替代。
return this.replace(/(^\s*)|(\s*$)/g, "");
}