Подтвердить что ты не робот

Скрытие поля ввода слайдера в jquery

Я использую jquery Mobile 1.0.

У меня есть этот HTML-код.

<label for="slider" class="ui-hidden-accessible">
    Input slider:
</label>
<input type="range" name="slider"   id="@(Model.QuestionNo)_slider" value="25" min="0" max="100" />

Его отображение выглядит так: enter image description here

Но я хочу удалить красную отмеченную часть. Я хочу показать только часть слайдера.

Как это можно сделать?

4b9b3361

Ответ 1

Если вы просто хотите избавиться от стрелок вверх/вниз, вы можете обернуть ввод в элемент с указанной шириной/высотой и overflow : hidden:

$(".ui-slider-input").wrap($('<div />').css({
    position : 'relative',
    display  : 'inline-block',
    height   : '36px',
    width    : '45px',
    overflow : 'hidden'
}));

Или, как заявил Фредерик Хамиди, вы можете просто скрыть элемент все вместе, и будет отображаться только ползунок.

Ниже приведена демограмма: http://jsfiddle.net/EWQ6n/1/

Также вы можете скрыть элемент ввода с помощью CSS (что хорошо, потому что вам не нужно время выполнения CSS, как вы это делаете с JS):

.ui-slider-input {
    display : none !important;
}

Вот демонстрация использования CSS: http://jsfiddle.net/EWQ6n/2/

Обновление

Вместо использования ключевого слова !important вы также можете создать более конкретное правило CSS, которое будет использоваться над классами jQuery Mobile. Примером может служить:

.ui-mobile .ui-page .ui-slider-input,
.ui-mobile .ui-dialog .ui-slider-input {
    display : none;
}

Ответ 2

input.ui-slider-input {
  display: none;
}

Ответ 3

Вы можете скрыть управление вводом вручную:

$("#yourPage").live("pageinit", function() {
    $(".ui-slider-input").hide();
});

Ответ 4

Если вы хотите избавиться от стрелки вверх/вниз, используйте type="text" data-type="range"

<input type="text" data-type="range" name="slider" id="@(Model.QuestionNo)_slider" value="25" min="0" max="100" />

Ответ 5

Я тоже хотел это сделать, но я также хотел, чтобы пространство исчезло. Я сделал это так (я использую ползунок диапазона):

<div data-role="rangeslider" data-mini="true" class="no-number">
    <input type="range" name="Morn"  id="Morn"  data-mini="true" value="720" min="0" max="1439">
    <input type="range" name="Night" id="Night" data-mini="true" value="10800" min="0" max="1439">
</div>

Примечание. Я добавил номер .no в div.

Тогда в css:

/* Used to remove the number next to the slider.*/
.no-number .ui-slider-input
{
    display : none;
    width: 0px;
}

/* Used to remove the space where the number was. */
.no-number .ui-rangeslider-sliders
{
    margin: 0 5px; !important
}

Я делаю все это как часть более крупной проблемы, а именно, что я пытаюсь использовать ползунок диапазона для времени вместо чисел, поэтому я заменил эти элементы заголовком, который я могу изменить с помощью функции для отображения время.

Это может быть не идеальный выбор, но я не видел, где можно найти место где угодно, поэтому я думал, что разместил его здесь.

Ответ 6

Когда вы это сделаете с помощью подхода CSS, вы можете сломать входной файл другого. Поэтому добавление класса class="ui-hidden-accessible" к вводу, чтобы скрыть его.

Удалите этот class="ui-hidden-accessible" из label.

Ваш подход правильный. Но вам нужно добавить class="ui-hidden-accessible" в input не на label.

Ваш код должен выглядеть примерно так:

<label for="slider">Input slider:</label>
<input type="range" name="slider" id="@(Model.QuestionNo)_slider" 
   value="25" min="0" max="100"  class="ui-hidden-accessible"/>

Отметьте SAMPLE DEMO

Ответ 7

<input type="range" name="slider_sodio" id="slider_sodio" value="0" min="0" max="3" step="1" class="ui-hidden-accessible"  />

но посмотрите, что смещение anoy

.ui-slider-track {
    margin: 0 15px 0 68px;  ----> change to 10
}

Ответ 8

Вы можете удалить входной слайдер как ниже:

    input.ui-slider-input {
        display: none;
        width: 0;
    }


    .ui-slider-track {
        margin: 0 15px 0 15px !important;
    }