Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   не могу установить чекбокс. простой вопрос (https://javascript.ru/forum/jquery/45281-ne-mogu-ustanovit-chekboks-prostojj-vopros.html)

sany531 21.02.2014 19:55

не могу установить чекбокс. простой вопрос
 
Доброго!
Задача такая, я раз в 2 секунды запрашиваю состояние пинов на плате, и в зависимости от этого ставлю чекбокс, я точно знаю, что данные приходят и корректно, но не могу понять почему чекбокс не ставится.

<!DOCTYPE html> 
<html>
<head>
	<meta name="viewport" content="width=device-width, initial-scale=1"> 
	<link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.css" />
	<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
	<script src="http://code.jquery.com/mobile/1.2.1/jquery.mobile-1.2.1.min.js"></script>
</head>
<body>
<form>
    <label for="flip-checkbox-2">Flip toggle switch checkbox:</label>
    <input type="checkbox" data-role="flipswitch" name="flip-checkbox-2" id="flip-checkbox-2" data-on-text="Light" data-off-text="Dark" data-wrapper-class="custom-label-flipswitch">
</form> 	
<script>
window.setInterval("jQuery.get('serial.php', {'action': 'x'}, ProcessResult)",2000);
           
function ProcessResult(data)
            {
if(data=="1")
		$("input[name=flip-checkbox-2]").attr("checked","checked");
            }        
</script>
</body>
</html>

danik.js 21.02.2014 20:00

1) В setInterval не стоит передавать строку. Че за мудак вас блин учит этому? Нужно передавать функцию
2) Вместо attr используй prop('checked', true) или false

sany531 21.02.2014 20:10

Заменил на prop не помогает. Как только я переношу эту строчку $("input[name=flip-checkbox-2]").prop("checked",true);
в функцию она перестает работать. про сет интервал, не очень понял, но он работает.

Octane 21.02.2014 20:13

Дело в кастомных чекбоксах от jQuery Mobile. Чекбокс то чекается, но он скрыт, а стили для элементов, имитирующих его, не изменяются.

sany531 21.02.2014 20:16

Цитата:

Сообщение от Octane (Сообщение 298844)
Дело в кастомных чекбоксах от jQuery Mobile. Чекбокс то чекается, но он скрыт, а стили для элементов, имитирующих его, не изменяются.

и какое решение?

danik.js 21.02.2014 20:17

ага. там чета типа checkboxradio('refresh') надо вызвать, но у меня нифига не получается. Но копать в эту сторону надо.

sany531 21.02.2014 20:21

Блин, емана наконец-то, спасибо вот так надо и делов-то
$("input[name=flip-checkbox-2]").prop('checked', true).checkboxradio("refresh");
я просто далек от вэб программирования тяжело все дается это


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