Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2015, 14:24
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

Поменять несколько значений в input type="text"
Имеем несколько "смысловых" групп. Каждая состоит из одного checkbox и нескольких input type="text".
<input type="checkbox" id="c1">
<input type="text" id="t1" value="">
<input type="text" id="t2" value="">
<input type="text" id="t3" value="">
<input type="text" id="t4" value="">

<input type="checkbox" id="c2">
<input type="text" id="t5" value="">
<input type="text" id="t6" value="">


<input type="checkbox" id="c3">
<input type="text" id="t7" value="">
<input type="text" id="t8" value="">
<input type="text" id="t9" value="">

Как сделать, чтобы при включении чекбокса, свойства value всех текстовых полей в "группе" выставлялось в 1?
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2015, 14:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

dpts,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
       var s = $("input:checkbox");
     s.click(function() {
     this.checked && $(this).nextUntil(s).val(1);
      });
});
  </script>
</head>

<body>
<input type="checkbox" id="c1" >
<input type="text" id="t1" value="">
<input type="text" id="t2" value="">
<input type="text" id="t3" value="">
<input type="text" id="t4" value="">

<input type="checkbox" id="c2">
<input type="text" id="t5" value="">
<input type="text" id="t6" value="">


<input type="checkbox" id="c3">
<input type="text" id="t7" value="">
<input type="text" id="t8" value="">
<input type="text" id="t9" value="">



</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 12.05.2015, 15:12
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

Спасибо за оперативный ответ
Спасибо. Работает.

А как теперь сбросить value в 0 если checkbox выключить?
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2015, 15:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

dpts,

Сообщение от рони
this.checked && $(this).nextUntil(s).val(1);
заменить на
$(this).nextUntil(s).val(+this.checked);
Ответить с цитированием
  #5 (permalink)  
Старый 12.05.2015, 15:42
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

Огромнейшее спасибо
Благодарю.
Ответить с цитированием
  #6 (permalink)  
Старый 12.05.2015, 17:37
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

А если усложнить верстку - не работает
Если верстка, как в предыдущем примере, то все отлично работает.
Но стоит начать заворачивать чекбоксы и поля ввода в таблицы, работать перестает.
<html>
<head>
<meta http-equiv="Content-Type" content="number/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<title>Чекбоксы</title>

  <script>
     $(function(){
       var s = $("input:checkbox");
     s.click(function() {
     this.checked && $(this).nextUntil(s).val(1);
      });
	});
	$(function(){
       var s = $("input:checkbox");
     s.click(function() {
     $(this).nextUntil(s).val(+this.checked);
      });
	});
  </script>

</head>

<body>

<div id="d1">
	<table id="td11">
		<tr>
			<td><input type="checkbox" id="c1" ><td>
		</tr>
	</table>
	<table id="td12">
		<tr>
			<td><input type="text" id="t1" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t2" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t3" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t4" value="0"></td>
		</tr>
	</table>	
</div>
<div id="d2">
	<table id="td21">
		<tr>
			<td><input type="checkbox" id="c2" ><td>
		</tr>
	</table>
	<table id="td22">
		<tr>
			<td><input type="text" id="t5" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t6" value="0"></td>
		</tr>
	</table>
</div>
<div id="d3">
	<table id="td31">
		<tr>
			<td><input type="checkbox" id="c3" ><td>
		</tr>
	</table>
	<table id="td32">
		<tr>
			<td><input type="text" id="t7" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t8" value="0"></td>
		</tr>
	</table>
</div>


</body>
</html>


Как исправить?
Ответить с цитированием
  #7 (permalink)  
Старый 12.05.2015, 17:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

dpts,
добавлен класс check -- если не подходит класс перечислите id нужных div $("#d1, #d2, #d3")
<html>
<head>
<meta http-equiv="Content-Type" content="number/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="ru">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<title>Чекбоксы</title>

  <script>
$(function() {
    $(".check").each(function(d, a) {
        var b = $("input:checkbox", a),
            c = $("input:text", a);
        b.click(function() {
            c.val(+this.checked)
        })
    })
});
  </script>

</head>

<body>

<div id="d1" class="check">
	<table id="td11">
		<tr>
			<td><input type="checkbox" id="c1" ></td>
		</tr>
	</table>
	<table id="td12">
		<tr>
			<td><input type="text" id="t1" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t2" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t3" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t4" value="0"></td>
		</tr>
	</table>
</div>
<div id="d2" class="check">
	<table id="td21">
		<tr>
			<td><input type="checkbox" id="c2" ></td>
		</tr>
	</table>
	<table id="td22">
		<tr>
			<td><input type="text" id="t5" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t6" value="0"></td>
		</tr>
	</table>
</div>
<div id="d3" class="check">
	<table id="td31">
		<tr>
			<td><input type="checkbox" id="c3" ></td>
		</tr>
	</table>
	<table id="td32">
		<tr>
			<td><input type="text" id="t7" value="0"></td>
		</tr>
		<tr>
			<td><input type="text" id="t8" value="0"></td>
		</tr>
	</table>
</div>


</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 12.05.2015, 18:36
Кандидат Javascript-наук
Отправить личное сообщение для dpts Посмотреть профиль Найти все сообщения от dpts
 
Регистрация: 12.05.2015
Сообщений: 111

Благодарю, работает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка вводимых значений в input type="text" Valentin1918 Общие вопросы Javascript 11 12.01.2015 06:20
Как передать в переменную массив значений из INPUT тега kapustnik Общие вопросы Javascript 3 19.04.2013 10:46
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
НЕСКОЛЬКО ЗНАЧЕНИЙ ИЗ INPUT ВЫВЕСТИ ПОСЛЕДОВАТЕЛЬНО Brook Events/DOM/Window 1 20.04.2012 23:32
Cчётчик значений value в элементе формы input type="text"? Surlik jQuery 8 04.04.2012 04:49