Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблема с input[radio] (https://javascript.ru/forum/dom-window/23703-problema-s-input%5Bradio%5D.html)

culttm 02.12.2011 19:02

Проблема с input[radio]
 
Доброго времени суток.
Есть опросник с input[radio]. При атрибуте checked необходимо чтобы весь блок менял фоновый цвет.
<span> <input type="checkbox" name="a" value="" /> I am very happy!</span>
<span> <input type="checkbox" name="a" value="" /> I am very happy!</span>

вот скрипт

$(document).ready(function(){
$(' span input[type="radio"]').bind('click',function(e) {
var $this = $(this);
if($this.is(':checked'))
$this.parents(' span').addClass('selected');
else
$this.parents(' span').removeClass('selected');
});
});


как видно что при условии :checked присваивается класс selected
проблема состоит в том, что класс selected в противном случае не удаляется. т.е. после выбора другого варианта background остается.
Странное что при iput[checkbox] все работает.
Что делать? помогите плиз!!!

melky 02.12.2011 19:36

возможно, проблема в проверке, чекнут ли radio

а именно - в $this.is(":checked"). проверьте это сами.

Pavel M. 02.12.2011 21:14

для радио можно не проверять :checked при клике
если клик, то точно :checked
а у соседнего span просто удаляем стиль

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>demo</title>
<script type='text/javascript' src='http://code.jquery.com/jquery-git.js'></script>

<style type='text/css'>
	.selected { background: red; }
</style>

<script> 
$(document).ready(function(){
	$(' span input[type="radio"]').bind('click', function (e) {
		var $this = $(this);
		$this.parent().addClass('selected');
		$this.parent().siblings('span').removeClass('selected');
	});
}); 
</script>

</head>
<body>
	<span><input type="radio" name="a" value="" /> I am very happy!</span>
	<span><input type="radio" name="a" value="" /> I am very happy!</span>
</body>
</html>

culttm 02.12.2011 21:38

Спасибо за помощь. :)


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