Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Checked или не Checked (https://javascript.ru/forum/jquery/22888-checked-ili-ne-checked.html)

OGS 04.11.2011 11:57

Checked или не Checked
 
Люди, нужен взгляд со стороны, а то я немного не соображаю уже, но думаю, что ошибка "плевая".

У меня есть 4 чекбокса:
<form>
<input type="checkbox" name="первый" id="a" value="1" /><label for="a">первый</label>

<input type="checkbox" name="второй" id="b" value="2" /><label for="b">второй</label>

 <input type="checkbox" name="третий" id="c" value="3" /><label for="c">третий</label>

 <input type="checkbox" name="четвертый" id="d" value="4" /><label for="d">четвертый</label>

</form>


<input type="button" id="submit" value="Проверить ответ" />



<div id="result" />

$('#submit').click(function (){
check_values();
});

Ниже работает скрипт на проверку "чекнутых" боксов,

function check_values(){
  if ($("#a:checked").val() && $("#b:checked").val()) {
     $("#result").html  ("выбраны те чекбоксы");
      }
else {
$("#result").html(" Выбраны не те чекбоксы" ) ;
}
}
</script>

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

Так в примере, если выбрать 1 и 2 чекбокс, напишет: "выбраны те чекбоксы", если выбрать еще и 3 опять "проверить ответ" все равно напишет то же самое.

Прошу посмотрите код пожалуйста, как задать "жесткое" значение, не пойму.

Я пробовал ставить другим чекбоксам значение false не работает :(

ksa 04.11.2011 13:01

Цитата:

Сообщение от OGS
при выборе других чекбоксов, если кликнуты два правильных, все равно пишет правильно.

Так и написано в твоём алгоритме. Т.ч. ничего удивительного...

Цитата:

Сообщение от OGS
как задать "жесткое" значение, не пойму

Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function (){
	$('#submit').click(function (){
		var o1=$('#frm :checked');
		var o2=$('#frm #a:checked, #frm #b:checked');
		var txt=(o1.length==2 && o2.length==2)? 'Выбраны те чекбоксы': 'Выбраны не те чекбоксы';
		$('#result').empty().html(txt); 
	});
});
</script>
</head>
<body>
<form id='frm'>
	<input type="checkbox" name="первый" id="a" value="1" /><label for="a">первый</label>
	<input type="checkbox" name="второй" id="b" value="2" /><label for="b">второй</label>
	<input type="checkbox" name="третий" id="c" value="3" /><label for="c">третий</label>
	<input type="checkbox" name="четвертый" id="d" value="4" /><label for="d">четвертый</label>
	<input type="button" id="submit" value="Проверить ответ" />
</form>
<div id="result"></div>
</body>
</html>

OGS 04.11.2011 13:41

Спасибо, Ваш код работает лучше моего.
А только подскажите, если мне например в ответе нужно будет вставить не только текст, а например кнопку или еще что, как можно написать?

У меня было вот так
if ($("#a:checked").val() && $("#b:checked").val()) {
     $("#result").html  ("<input type='button' id='submit' value='Выбраны те чекбоксы' onClick='rand_link()'/>");
      }

и вылетала кнопка, на которую я подцепляю еще ссылки...

в Вашем коде можно так?

OGS 04.11.2011 15:23

Все разобрался, напутал с ковычками просто.


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