Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Малая ширина после изменения display (https://javascript.ru/forum/dom-window/40565-malaya-shirina-posle-izmeneniya-display.html)

Fisher 11.08.2013 10:15

Малая ширина после изменения display
 
При нажатии на одну из радио кнопок показывается блок, который изначально скрыт. Но в том блоке помещен select с выпадающим списком и когда я нажимаю на нужную радио кнопку то select появляется, но шириной примерно в один пиксель. Как сделать чтобы он появлялся нормальной шириной?

код:
<input size="5" type="text" value="name" name="name" id="name" />        
<input id="ooo3" onChange="javascript:disableTxt()" type="radio" value="1" name="name" />        
<input id="ooo2" onChange="javascript:disableTxt()" type="radio" value="1" name="name" />        
<input id="ooo" onChange="javascript:enableTxt()" type="radio" value="1" name="name" />        
<div id="radioo" style="display:none;">
    <select style="width:auto" size="4" name="name" id="name">
        <option value="1">Блохин Олег</option>
    </select>    
</div>

<script>
    var temp = '';
    function disableTxt() {
        var field = document.getElementById("radioo");
        if(field.value != '') {
            temp = field.value;
        }
        field.style.display = "none";
        field.value = '';
    }
    function enableTxt() {
        document.getElementById("radioo").style.display = "inline";
        document.getElementById("radioo").value = temp;
    }
</script>

danik.js 11.08.2013 10:26

А браузер какой? Хром - все нормально отображается. Селект нормальной ширины.
<input size="5" type="text" value="name" name="name" id="name" />       
<input id="ooo3" onChange="javascript:disableTxt()" type="radio" value="1" name="name" />       
<input id="ooo2" onChange="javascript:disableTxt()" type="radio" value="1" name="name" />       
<input id="ooo" onChange="javascript:enableTxt()" type="radio" value="1" name="name" />       
<div id="radioo" style="display:none;">
    <select style="width:auto" size="4" name="name" id="name">
        <option value="1">Блохин Олег</option>
    </select>   
</div>

<script>
    var temp = '';
    function disableTxt() {
        var field = document.getElementById("radioo");
        if(field.value != '') {
            temp = field.value;
        }
        field.style.display = "none";
        field.value = '';
    }
    function enableTxt() {
        document.getElementById("radioo").style.display = "inline";
        document.getElementById("radioo").value = temp;
    }
</script>

Fisher 11.08.2013 10:44

Цитата:

А браузер какой? Хром - все нормально отображается. Селект нормальной ширины.
Спасибо огромное, не хватило ума протестить голый пример. У меня тоже хром просто подключено расширение для селектов http://harvesthq.github.io/chosen/ . Буду под него копать...

danik.js 11.08.2013 10:56

Как вариант - вместо display:none пропиши класс, скажем hidden. Далее в js сразу после инициализации chosen скрой эти классы через $('.hidden').hide()

Fisher 11.08.2013 11:09

Цитата:

Сообщение от danik.js (Сообщение 266920)
Как вариант - вместо display:none пропиши класс, скажем hidden. Далее в js сразу после инициализации chosen скрой эти классы через $('.hidden').hide()

Спасибо, работает.


Часовой пояс GMT +3, время: 23:04.