views:

57

answers:

1

I have two listboxes set with multiple property and on adding the items from first to second, I don't want the selection on the second listbox.

I wrote the code like this

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

It worked in IE7 but not in IE6. Can anyone please give me a solution?

The html is

<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>

and the script goes like this

$("#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");**
            });
+1  A: 

You can try using "attr"

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

[Source]

Have a look here: [Link] more specifically read that:

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!
infinity
No still the same error exist
Pooja
What says the error, or can you post a link to check it myself?
infinity
This is the problem with ie6 only. What can be the reason ? How can I correct it?
Pooja
I will update my question ok
Pooja
html and script are shown above in the question. Please find me a solution
Pooja
Script error shows like this: Couldnot set the selected property.Unspecified error
Pooja