Login Register

URGENT: Disable comboBox for Safari browsers

I asked this question in the Dijit board yesterday but no one is responding. Thought I would give it a shot over here too, quite important.

The comboBox on SELECT items is not working correctly in safari (because dijit replaces it for a text field). Is there a way to not replace comboBox form elements in safari?

Thank you for your help.

not sure I understand

The ComboBox creates an input element on *every* browser, not just Safari. If you're looking for something with a similar UI but a closer semantic to regular select elements, check out dijit.form.FilteringSelect.

--
Project Lead, The Dojo Toolkit
President, The Dojo Foundation

Thank you I will check that

Thank you I will check that out.

The problem with input text boxes in Safari is you can not style them. So if my combobox is all black then only in Safari there is this big white box there, and its not usable.

Thank you alex, I checked

Thank you alex, I checked out the FilteringSelect and it is also adding a text field to the select, which messes up in safari. I can show you a screenshot if you need, but it renders the select unusable in Safari.

<select name="select_year" dojoType="dijit.form.FilteringSelect" id="select_year">
        <option>Expiration Year</option>
        <option value="2008">2008</option>
        <option value="2009">2009</option>
        <option value="2010">2010</option>
</select>

is getting turned into:

<div style="" disabled="false" labelledby="select_year_label" widgetid="select_year" value="Expiration Year" role="wairole:combobox" class="dijit dijitReset dijitInlineTable dijitLeft dijitComboBox" id="widget_select_year" dojoattachevent="onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse" dojoattachpoint="comboNode" wairole="combobox" tabindex="-1">
        <div style="overflow: hidden;">
                <div role="wairole:presentation" class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton" dojoattachpoint="downArrowNode" wairole="presentation" dojoattachevent="onmousedown:_onArrowMouseDown,onmouseup:_onMouse,onmouseenter:_onMouse,onmouseleave:_onMouse">
                        <div class="dijitArrowButtonInner"> </div>
                        <div class="dijitArrowButtonChar">▼</div>
                </div>
                <div class="dijitReset dijitValidationIcon"><br></div>
                <div class="dijitReset dijitValidationIconText">Χ</div>
                <div class="dijitReset dijitInputField">
                        <input invalid="true" value="" tabindex="0" id="select_year" autocomplete="list" haspopup="true" role="wairole:textbox" autocomplete="off" class="dijitReset" dojoattachevent="onkeypress:_onKeyPress, onfocus:_update, compositionend" dojoattachpoint="textbox,focusNode" wairole="textbox" waistate="haspopup-true,autocomplete-list" type="text">
                        <input name="select_year" style="display: none;" value="" type="text">
                </div>
        </div>
</div>

Might work for you...

var tb=dijit.byId('datatest').textbox;
dojo.style(tb.parentNode,"backgroundColor","black");

Hi Frank. Is 'datatest' the

Hi Frank. Is 'datatest' the id of the select item?

Does this just change the the background-color style attrib? I have done this with CSS but Safari is a little finicky with text inputs, like the border can not be removed, can not have a background image and stuff.

Yes, the id. Yes on the bg

Yes, the id. Yes on the bg color style attrib.

FWIW, just tested in Safari

FWIW, just tested in Safari (windows), and it makes the bg color black...Is that what you needed?

Sorry I do not have safari 2

Sorry I do not have safari 2 at home, just 3. And the problem only happens in 2. I am going to look into it tomorrow at work.