1

Я пытаюсь правильно отключить jQuery Mobile rangelider через Javascript. Но это не сработает. Если я добавлю атрибут disabled к элементам <input>, они будут работать в Html-файле. Но если я пытаюсь отключить его черезКак отключить rangelider в jQuery Mobile через javascript

$('#range-monday-a').attr("disabled", "disabled"); 
$('#range-monday-b').attr("disabled", "disabled"); 

добавляет disabled="disabled" атрибут входных элементов в DOM, но дисплей не изменится, и я до сих пор можно использовать ползунок. («# range-monday-a» и «# range-monday-b» являются идентификаторами обоих входных элементов диапазона)

Я предполагаю, что это связано с тем, что jQuery Mobile предоставляет дополнительные div и прочее для диапазонов. Но я не могу найти ответ на jquerymobile.com, ни здесь, ни через google.

ответ

1

Вы пробовали:

$('#range-monday-a').slider('disable'); 
$('#range-monday-b').slider('disable'); 

Из документации: http://jquerymobile.com/demos/1.3.0-rc.1/docs/forms/slider/methods.html

+0

Большое спасибо, действительно, это работает! Это было прямо на моих глазах, но почему-то я думал, что эта версия работает только для ползунков, которые инициализируются через javascript. – Peter

+0

Рад это слышать! –

+0

не работает ............ – Umair

1

Вы также можете сделать это с помощью одного переключателя:

$("#range-monday-a, #range-monday-b").slider("disable"); 

Или еще лучше:

$("#ancestor input[data-type='range']").slider("disable"); 

Однако обратите внимание, что числовые поля с обеих сторон будут оставаться в полной непрозрачности в любом случае - I filed the bug.