RT
本人新手。
写了一个javascript的click事件。在IE8上不能成功调用函数,
下面贴我的functionfunction 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的语句为:<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>
<textarea name="managertextarea" id="managertextarea"  cols="54" rows="4" readonly="readonly">
 
  </textarea>

解决方案 »

  1.   

    1:if(oldTextarea.trim()=="")//这个.trim()是你自己已经定义了的吗?
    2:select的项值改变触发事件,你应该上移至select本身
    <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;
    }
      

  2.   

    再次修正一下你的select
    <select size=20 onchage="addRcvUser(this)">
    <option value="<%=users.get(i).getUserid()%>">
                    <%=users.get(i).getUserrename() %>    
            </option>
    </select>
      

  3.   

    非IE浏览器,都内部实现了trim()方法,IE没有实现把.trim()去掉即可
      

  4.   

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