Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Зависимость значения input от Radio (https://javascript.ru/forum/dom-window/52605-zavisimost-znacheniya-input-ot-radio.html)

Globus 26.12.2014 15:23

Зависимость значения input от Radio
 
Ребята, есть код:

<input type="radio" id="r1" name="line1"> 5<br>
<input type="radio" id="r2" name="line1"> 10<br>
<input type="radio" id="r3" name="line1"> 20<br>
<input type="radio" id="r4" name="line1"> 50<br>
<input type="radio" id="r5" name="line1"> 100<br>

<input type="text" name="quantity" size="2" value="1" />


Никак не могу сообразить, как сделать, чтобы при нажатии на radio id="r1" в инпуте значение менялось на 5, а при нажатии на id="r2", соответственно, на 10. подскажите, пожалуйста.

Globus 26.12.2014 15:56

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
 



	<script type="text/javascript" >
		$(document).ready(function() {
 
			$('.plus4').click(function () {
				var $input = $(this).parent().find('input.quantity');
              var count = parseInt($input.val()) - 100;
				count = count < 1 ? 1 : count;
				$input.val(count);
				$input.change();
				$input.val(parseInt($input.val()) + 4);
				$input.change();
				return false;
			}); 
			$('.plus9').click(function () {
				var $input = $(this).parent().find('input.quantity');
              var count = parseInt($input.val()) - 100;
				count = count < 1 ? 1 : count;
				$input.val(count);
				$input.change();
				$input.val(parseInt($input.val()) + 9);
				$input.change();
				return false;
			});
          			$('.plus19').click(function () {
				var $input = $(this).parent().find('input.quantity');
              var count = parseInt($input.val()) - 100;
				count = count < 1 ? 1 : count;
				$input.val(count);
				$input.change();
				$input.val(parseInt($input.val()) + 19);
				$input.change();
				return false;
			});
          			$('.plus49').click(function () {
				var $input = $(this).parent().find('input.quantity');
              var count = parseInt($input.val()) - 100;
				count = count < 1 ? 1 : count;
				$input.val(count);
				$input.change();
				$input.val(parseInt($input.val()) + 49);
				$input.change();
				return false;
			});
            $('.plus99').click(function () {
				var $input = $(this).parent().find('input.quantity');
              var count = parseInt($input.val()) - 100;
				count = count < 1 ? 1 : count;
				$input.val(count);
				$input.change();
				$input.val(parseInt($input.val()) + 99);
				$input.change();
				return false;
			});
		});
	</script>



<input type="text" class="quantity" name="quantity" size="2" value="1" />
 <input type="radio" name="line1" class="plus4"> 
 <input type="radio" name="line1" class="plus9"> 
 <input type="radio" name="line1" class="plus19"> 
 <input type="radio" name="line1" class="plus49"> 
 <input type="radio" name="line1" class="plus99">

krutoy 26.12.2014 22:33

<html>
<head>
</head>
<body>

<input type="radio" id="r1" name="line1"> 5<br>
<input type="radio" id="r2" name="line1"> 10<br>
<input type="radio" id="r3" name="line1"> 20<br>
<input type="radio" id="r4" name="line1"> 50<br>
<input type="radio" id="r5" name="line1"> 100<br>
 
<input type="text" name="quantity" size="2" value="1" />


<script>

inputs=document.getElementsByName("line1")
q=document.getElementsByName("quantity")[0]
f=function(){q.value=this.nextSibling.wholeText}
;[].forEach.call(inputs, function(el){el.onchange=f})

</script>

</body>
</html>

Globus 26.12.2014 22:38

оно самое!


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