【问题标题】:removeAttr("selected") showing error in IE6removeAttr("selected") 在 IE6 中显示错误
【发布时间】:2010-10-26 01:28:52
【问题描述】:

我有两个设置了多个属性的列表框,并且在将项目从第一个添加到第二个时,我不希望在第二个列表框上进行选择。

我是这样写代码的

$("#<%=lbCommcatTo.ClientID%> option").removeAttr("selected");

它在 IE7 中有效,但在 IE6 中无效。谁能给我一个解决方案?

html是

<table cellspacing="0" cellpadding="0" width="100%" border="0">
    <tr>
        <td width="45%">
            <div style="height: 230px;width: 234px; overflow: auto; border: solid 1px #c1c1c1" id="dvLeft" runat="server">
                 <select id="lbCommcatFrom" runat="server" style="height:790px;" multiple name="lbCommcatFrom" class="ContentTextNormal">
                 </select>
             </div>
         </td>
         <td width="10%" align="center">
             <div style="border: solid 1px #6E6E6E; width: 20px; height: 20px; padding-top: 4px; text-align: center; margin-bottom: 5px; background-color: #CECFBE; cursor: pointer" title="Add to List" id="imgMoveRight" class="clsArrow">
             </div>
             <div style="border: solid 1px #6E6E6E; width: 20px; height: 20px; padding-top: 4px; text-align: center; background-color: #CECFBE; cursor: default" title="Remove from List" id="imgMoveLeft" class="clsArrow">
             </div>
           </td>
           <td width="45%">
               <div style="height: 230px;width: 234px; overflow: auto; border: solid 1px #c1c1c1" id="dvRight" runat="server">
                   <select id="lbCommcatTo" runat="server" style="height:230px;width:234px" multiple name="lbCommcatTo" class="ContentTextNormal">
                   </select>
                </div>
            </td>
        </tr>
    </table>

脚本是这样的

$("#imgMoveRight").click(function(){   
                 $("#<%=lbCommcatFrom.ClientID%>  option:selected").appendTo("#<%=lbCommcatTo.ClientID%>");     

                 if( $("#<%=lbCommcatFrom.ClientID%> option").length == 0)
                 {
                        $("#<%=lbCommcatFrom.ClientID%>").parent().css("overflow-x","hidden");
                        $("#<%=lbCommcatFrom.ClientID%>").parent().css("overflow-y","hidden");                         
                        $("#<%=lbCommcatFrom.ClientID%>").css("width","234px");
                        $("#<%=lbCommcatFrom.ClientID%>").css("height","230px");
                        $(this).css("cursor","default");                          
                 }  
                 else
                 {
                     if($("#<%=lbCommcatTo.ClientID%> option").length > 0)
                     {                       
                         $("#<%=lbCommcatTo.ClientID%>").parent().css("overflow-x","scroll");  
                         $("#<%=lbCommcatTo.ClientID%>").css("width","465"); 
                         $("#<%=lbCommcatFrom.ClientID%>").css("width","465"); 
                         if($("#<%=lbCommcatTo.ClientID%> option").length > 15)
                         {
                             $("#<%=lbCommcatTo.ClientID%>").css("height",$("#<%=lbCommcatTo.ClientID%> option").length * 18);    
                             $("#<%=lbCommcatTo.ClientID%>").parent().css("overflow-y","scroll");  
                         } 
                         else
                         {
                            $("#<%=lbCommcatTo.ClientID%>").css("height","230");
                            $("#<%=lbCommcatTo.ClientID%>").parent().css("overflow-y","hidden");  
                         } 

                         $("#imgMoveLeft").css("cursor","pointer");                    
                     }                     
                 }   
                **$("#<%=lbCommcatTo.ClientID%> option").removeAttr("selected");**              



            });

            $("#imgMoveLeft").click(function(){

                 $("#<%=lbCommcatTo.ClientID%> option:selected").appendTo("#<%=lbCommcatFrom.ClientID%>");
                 $("#<%=lbCommcatFrom.ClientID%>").css("width","465");                  
                 if( $("#<%=lbCommcatTo.ClientID%> option").length == 0)
                 {
                        $("#<%=lbCommcatFrom.ClientID%>").parent().css("overflow","scroll"); 
                        $("#<%=lbCommcatTo.ClientID%>").parent().css("overflow-x","hidden");
                        $("#<%=lbCommcatTo.ClientID%>").parent().css("overflow-y","hidden");                           
                        $("#<%=lbCommcatTo.ClientID%>").css("width","232px");
                        $("#<%=lbCommcatTo.ClientID%>").css("height","230px");
                        $(this).css("cursor","default"); 
                 }  
                 else
                 {
                     if($("#<%=lbCommcatFrom.ClientID%> option").length > 0)
                     {                         
                         $("#<%=lbCommcatFrom.ClientID%>").parent().css("overflow-x","scroll");  
                         if($("#<%=lbCommcatFrom.ClientID%> option").length > 15)
                         {
                             $("#<%=lbCommcatFrom.ClientID%>").css("height",$("#<%=lbCommcatFrom.ClientID%> option").length * 16);    
                             $("#<%=lbCommcatFrom.ClientID%>").parent().css("overflow-y","scroll");  
                         } 
                         else
                         {
                            $("#<%=lbCommcatFrom.ClientID%>").css("height","230");
                            $("#<%=lbCommcatFrom.ClientID%>").parent().css("overflow-y","hidden");  
                         }  
                         $("#imgMoveRight").css("cursor","pointer");     
                     }                     
                 }

                 **$("#<%=lbCommcatFrom.ClientID%> option").removeAttr("selected");**
            });

【问题讨论】:

  • 脚本错误显示如下:无法设置选定的属性。未指定的错误

标签: jquery internet-explorer selection


【解决方案1】:

您可以尝试使用“attr”

$("#<%=lbCommcatTo.ClientID%> option").attr("selected", "");

[Source]

看看这里:[Link] 更具体地说:

If you wrap the code that sets selected in a setTimeout it works, surprisingly enough.
I have to assume it needs to give control back to the browser to let state settle.

Another way to get this to work is to wrap the code that sets selected in a try/catch 
block and just swallow the error from IE. It seems to set the element as selected properly 
despite the error!

【讨论】:

  • 错误是什么,或者你能发个链接自己检查一下吗?
  • 这只是ie6的问题。可能是什么原因?我该如何纠正它?
  • html 和脚本显示在问题的上方。请给我一个解决方案
  • 脚本错误显示如下:无法设置选定的属性。未指定的错误
猜你喜欢
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
相关资源
最近更新 更多