Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Обработка radio button (https://javascript.ru/forum/misc/44312-obrabotka-radio-button.html)

imengine 15.01.2014 14:27

Обработка radio button
 
Здравствуйте! Вот такой вопрос:
Есть три варианта на выбор в форме заказа, отмечаемые радио-баттонами. Двум из этих вариантов соответствуют поля ввода значений.
Нужно реализовать, чтобы, при выборе соответствующего радио, поле ввода делалось активным, если же выбраны другие, то становилось disabled:

Использовал решение отсюда: http://www.easywayserver.com/blog/en...in-javascript/
Попытался изменить под свою ситуацию:

function chMd()
 {

  document.forms[0].weight_num.disabled=false;
  document.forms[0].weight_num.value="";

   document.forms[0].number_num.disabled=false;
  document.forms[0].number_num.value="";


  for(var i=0;i<document.forms[0].elements.length;i++)
  {
    if(document.forms[0].elements[i].name=="weight")
    {
     if(document.forms[0].elements[i].value=="Вес")
     {
       if(document.forms[0].elements[i].checked==true){

        document.forms[0].weight_num.disabled=false;

		document.forms[0].number_num.disabled=true;

       }
     }
     else if(document.forms[0].elements[i].value=="Количество мест")
     {
       if(document.forms[0].elements[i].checked==true){
        document.forms[0].weight_num.disabled=true;

        document.forms[0].number_num.disabled=false;

       }
     }
     else if(document.forms[0].elements[i].value=="Объемный вес (X+Y*Z/6000)")
     {
       if(document.forms[0].elements[i].checked==true){
        document.forms[0].weight_num.disabled=true;

        document.forms[0].number_num.disabled=true;

       }
     }
    }
  }
 }

<p><input id="weight" name="weight" type="radio" onClick="chMd()"  value="Вес" checked="checked">Вес</p>

<p><input id="weight_num" name="weight_num" type="text" value="[[!+fi.weight_num]]" disabled="disabled"> кг</p>

<p><input id="number" name="weight" type="radio" onClick="chMd()" value="Количество мест">Количество мест</p>

<p><input id="number_num" name="number_num" type="text" value="[[!+fi.number_num]]" disabled="disabled"></p>

<p><input name="weight" type="radio" onClick="chMd()" value="Объемный вес (X+Y*Z/6000)">Объемный вес (X+Y*Z/6000)</p>


Решение у меня не работает.
Добавлю, что у меня это только часть всей формы.
Заранее спасибо.

ksa 15.01.2014 16:46

Цитата:

Сообщение от imengine
Решение у меня не работает.

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

<!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">
$(function(){
	$('#container input:radio').click(function (){
		$('#container input:radio').each(function (){
			if (this.checked) {
				$(this).parent().next().children('input').removeAttr('disabled');
			} else {
				$(this).parent().next().children('input').attr('disabled',true);
			};
		});
	});
});
</script>
</head>
<body>
<div id='container'>
	<div><input id="weight" name="weight" type="radio"  value="Вес" checked="checked" />Вес</div>
	<div><input id="weight_num" name="weight_num" type="text" value="[[!+fi.weight_num]]" /> кг</div>
	<div><input id="number" name="weight" type="radio" value="Количество мест">Количество мест</div>
	<div><input id="number_num" name="number_num" type="text" value="[[!+fi.number_num]]" disabled /> шт.</div>
</div>
</body>
</html>

imengine 15.01.2014 18:21

ksa,
Спасибо большое, отлично работает.


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