Closed
Bug 224023
Opened 21 years ago
Closed 9 years ago
Listbox (select) does not scroll to selected line
Categories
(Core :: Layout: Form Controls, defect)
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: matthias_rgaw, Unassigned)
Details
(Keywords: testcase)
Attachments
(2 files)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.5) Gecko/20031007 If a listbox (select) is placed within a table where the cell (<td>) has the attribute align="center", the listbox does not initially show the selected line. html code to reproduce behavior: <html> <head><title>Listbox Problem</title> </head> <body><form><table> <tr> <td align="center"> <select id="day" name="day" tabindex="1" size="7"> <option value="20.09.2003">Sa 20.09.2003</option> <option value="21.09.2003">So 21.09.2003</option> <option value="22.09.2003">Mo 22.09.2003</option> <option value="23.09.2003">Di 23.09.2003</option> <option value="24.09.2003">Mi 24.09.2003</option> <option value="25.09.2003">Do 25.09.2003</option> <option value="26.09.2003">Fr 26.09.2003</option> <option value="27.09.2003">Sa 27.09.2003</option> <option value="28.09.2003">So 28.09.2003</option> <option value="29.09.2003">Mo 29.09.2003</option> <option value="30.09.2003">Di 30.09.2003</option> <option value="01.10.2003">Mi 01.10.2003</option> <option value="02.10.2003">Do 02.10.2003</option> <option value="03.10.2003" selected >Fr 03.10.2003</option> <option value="04.10.2003">Sa 04.10.2003</option> <option value="05.10.2003">So 05.10.2003</option> <option value="06.10.2003">Mo 06.10.2003</option> </select> </table></form></body> </html> Reproducible: Always Steps to Reproduce: 1. Save above code into a html document 2. open this document Actual Results: listbox shows first line Expected Results: listbox should scroll to the selected line
Comment 1•21 years ago
|
||
Why do we ever scroll to the <option selected>? That seems like odd behavior to me...
Comment 3•21 years ago
|
||
Yes, I am. Perhaps I should clarify the question... "I just looked through the listbox code, and I fail to see what would trigger this scrolling. What code actually triggers it?"
Comment 4•21 years ago
|
||
Adding me to the CC list. I have just noticed this bug when testing a PHP script. I have found out that IE behaviour is exactly the requested on this bug: if an item is selected by default, the select element should be scrolled to allow seeing the item selected. I suggest to change the status to NEW. Oh, and it is important to keep in mind that the attribute "align=center" in the TD tag is not necessary for reproducing the bug.
Comment 5•21 years ago
|
||
I have made a little JavaScript function as a workaround for this bug. It's quite simple and more or less secure: function ScrollSelect(sel){ //function used as workaround of Mozilla bug: // http://bugzilla.mozilla.org/show_bug.cgi?id=224023 if ((sel.options.length>1)&&(sel.selectedIndex!=-1)){ sel.focus(); i = sel.selectedIndex; if (sel.options.length-1!=i) //not the last option selected sel.selectedIndex=sel.options.length-1; else sel.selectedIndex=i-1; sel.selectedIndex=i; } } This function could be called by the page using something like (supposing "form1" as the name of the form, and "sel1" the name of the select input control): <body onLoad="ScrollSelect(window.document.form1.sel1);"> Although this workaround won't be useful when JavaScript is disabled for the browser. This is the reason for me to think that we need this bug to be resolved for Mozilla (at least, it should be marked as NEW). Regards.
Comment 6•21 years ago
|
||
I had a mistake in my comment #4. The align="center" is a requisite for the reproduction of the bug. The best way to notice the bug is displaying the HTML example that gave Matthias. If the attribute align="center" is removed, Mozilla scrolls the SELECT (BTW, I am answering to Boris, I think).
Comment 7•21 years ago
|
||
confirmed with trunk build 20040111908 I can't see why a list should behave differently with and without align="center" on the cell, it's not consistent.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Comment 8•21 years ago
|
||
I have found a very representative URL in bugzilla for this bug: http://bugzilla.mozilla.org/enter_bug.cgi?format=__default__&product=mozilla.org&component=webmaster@mozilla.org&version=other&rep_platform=All&op_sys=All&bug_file_loc=http://www.mozilla.org/hacking/portable-cpp.html&short_desc=%3CSummarize+your+changes+here.%3E&comment=%3CDescribe+your+changes+here+in+more+detail.++After+you+commit+this+bug+report%2C%0D%0Aclick+the+%22Create+Attachment%22+link+to+add+the+changes+to+the+report+as+an%0D%0Aattachment.%3E (Perhaps it is useful to have this URL on the URL field for the bug, but I have not enough permissions to change it.) As you see, when you display that page, the SELECT control which allows selecting the Component, has a selected value, but the Select is not properly scrolled (if you scroll the SELECT manually, you can see the selected item). I also have made an optimization for the workaround in JavaScript that I noticed: function ScrollSelect(sel){ //function used as workaround for Mozilla bug: // http://bugzilla.mozilla.org/show_bug.cgi?id=224023 if ((sel.options.length>1)&&(sel.selectedIndex>0)){ sel.selectedIndex--; sel.selectedIndex++; } }
Comment 9•20 years ago
|
||
Comment 10•20 years ago
|
||
Bug still occurs, 2004-07-18-05 trunk Linux. The regression occured somewhere between Mozilla 1.3 and 1.4 releases.
Comment 11•20 years ago
|
||
Using javascript to scroll a listbox by setting selectedIndex to a position fails when disabled is set to 'true' and then back to 'false'. This attachment demonstrates this bug.
Updated•19 years ago
|
Attachment #154028 -
Attachment mime type: application/octet-stream → video/mpeg
Comment 12•18 years ago
|
||
However this can be made to work by a work-around by replacing the innerHTML of the select statement as follows - <select> <option value="Page1"> <option value="Page2"> <option value="Page3"> <option value="Page4"> <select> If option 3 needs to be as selected then using innerHTML replace the option 3 html text as: <option value="Page3" selected="selected"> So it now looks like - <select> <option value="Page1"> <option value="Page2"> <option value="Page3" selected="selected"> <option value="Page4"> <select> This way I am able to set the option as selected.
Updated•15 years ago
|
Assignee: layout.form-controls → nobody
QA Contact: ian → layout.form-controls
Comment 13•9 years ago
|
||
Works for me, both when loading the test attachment directly from Bugzilla and from a local saved file. Nightly 37.0a1 (2015-01-01) on Linux64. Can anyone else reproduce the problem?
Flags: needinfo?(matthias_rgaw)
Whiteboard: [closeme 2015-01-26]
Comment 14•9 years ago
|
||
Resolved per whiteboard and Comment 13
Status: NEW → RESOLVED
Closed: 9 years ago
Flags: needinfo?(matthias_rgaw)
Resolution: --- → WORKSFORME
Whiteboard: [closeme 2015-01-26]
You need to log in
before you can comment on or make changes to this bug.
Description
•