Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.06.2016, 09:44
Новичок на форуме
Отправить личное сообщение для dzhenkins Посмотреть профиль Найти все сообщения от dzhenkins
 
Регистрация: 13.06.2016
Сообщений: 4

При выборе одного input="radio" другой input="radio" станет не активный
Пример:
<h2>Доставка</h2>
<input type="radio" id="deliveri_1" value="1">
<input type="radio" id="deliveri_2" value="2">
<input type="radio" id="deliveri_3" value="3"> <!-- Если выбрали этот то... -->
<input type="radio" id="deliveri_4" value="4">


<h2>Оплата</h2>
<input type="radio" id="payment_1" value="1">
<input type="radio" id="payment_2" value="2"> <!-- ...то этот станет недоступен -->
<input type="radio" id="payment_3" value="3">
<input type="radio" id="payment_4" value="4">


Нужен скрипт, который будет работать по правилу, что если выбран input с id="deliveri_3", то input с id="payment_2" должен стать неактивным.
Ответить с цитированием
  #2 (permalink)  
Старый 13.06.2016, 10:25
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Условия не совсем понятны, так что ли?
<h2>Доставка</h2>
<input type="radio" id="deliveri_1" value="1">
<input type="radio" id="deliveri_2" value="2">
<input type="radio" id="deliveri_3" value="3"> <!-- Если выбрали этот то... -->
<input type="radio" id="deliveri_4" value="4">


<h2>Оплата</h2>
<input type="radio" id="payment_1" value="1">
<input type="radio" id="payment_2" value="2"> <!-- ...то этот станет недоступен -->
<input type="radio" id="payment_3" value="3">
<input type="radio" id="payment_4" value="4">
<script>
var selected = document.getElementById('deliveri_3');
var makeDisable = document.getElementById('payment_2');
selected.addEventListener('change', function(event){
  event.target.checked?makeDisable.disabled=true:makeDisable.disabled=false
})
</script>

Последний раз редактировалось Царь Леонид, 13.06.2016 в 10:28.
Ответить с цитированием
  #3 (permalink)  
Старый 13.06.2016, 10:56
Новичок на форуме
Отправить личное сообщение для dzhenkins Посмотреть профиль Найти все сообщения от dzhenkins
 
Регистрация: 13.06.2016
Сообщений: 4

Спасибо, это то, что нужно. Но, если убрать выбор с "deliveri_3" на "deliveri_4" (например), то "payment_2" не становится снова активным.
Ответить с цитированием
  #4 (permalink)  
Старый 13.06.2016, 11:41
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Точно))
<h2>Доставка</h2>
<form action="">  
<input type="radio" id="deliveri_1" name="deliveri" value="1">
<input type="radio" id="deliveri_2" name="deliveri" value="2">
<input type="radio" id="deliveri_3" name="deliveri" value="3"> <!-- Если выбрали этот то... -->
<input type="radio" id="deliveri_4" name="deliveri" value="4">
</form>

<h2>Оплата</h2>
<input type="radio" id="payment_1" value="1">
<input type="radio" id="payment_2" value="2"> <!-- ...то этот станет недоступен -->
<input type="radio" id="payment_3" value="3">
<input type="radio" id="payment_4" value="4">
<script>
var selected = document.querySelectorAll('input');
var makeDisable = document.getElementById('payment_2');

for(i=0; i<selected.length; i++){
selected[i].addEventListener('change', function(event){
  event.target.id == 'deliveri_3' && event.target.checked?makeDisable.disabled=true:makeDisable.disabled=false
})
}

</script>
Ответить с цитированием
  #5 (permalink)  
Старый 13.06.2016, 12:19
Новичок на форуме
Отправить личное сообщение для dzhenkins Посмотреть профиль Найти все сообщения от dzhenkins
 
Регистрация: 13.06.2016
Сообщений: 4

Супер, благодарю!
Ответить с цитированием
  #6 (permalink)  
Старый 13.06.2016, 12:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Царь Леонид,
а без цикла сможешь?
Ответить с цитированием
  #7 (permalink)  
Старый 13.06.2016, 16:12
Новичок на форуме
Отправить личное сообщение для dzhenkins Посмотреть профиль Найти все сообщения от dzhenkins
 
Регистрация: 13.06.2016
Сообщений: 4

Возникла ещё одна небольшая задачка:
<h2>Доставка</h2>
<input type="radio" id="deliveri_1" value="1">
<input type="radio" id="deliveri_2" value="2">
<input type="radio" id="deliveri_3" value="3"> <!-- Если выбрали этот то... -->
<input type="radio" id="deliveri_4" value="4"> <!-- Или если выбрали этот то... -->


<h2>Оплата</h2>
<input type="radio" id="payment_1" value="1">
<input type="radio" id="payment_2" value="2"> <!-- ...то этому назначить class="random" -->
<input type="radio" id="payment_3" value="3">
<input type="radio" id="payment_4" value="4">


Собственно, думаю всё понятно. И соответственно class="random" пропадает, если выбираем input с id deliveri_1 или deliveri_2.
Ответить с цитированием
  #8 (permalink)  
Старый 13.06.2016, 17:36
Профессор
Отправить личное сообщение для Царь Леонид Посмотреть профиль Найти все сообщения от Царь Леонид
 
Регистрация: 22.08.2013
Сообщений: 217

Сообщение от рони Посмотреть сообщение
Царь Леонид,
а без цикла сможешь?
<h2>Доставка</h2>
<form action="">  
<input type="radio" id="deliveri_1" name="deliveri" value="1">
<input type="radio" id="deliveri_2" name="deliveri" value="2">
<input type="radio" id="deliveri_3" name="deliveri" value="3"> <!-- Если выбрали этот то... -->
<input type="radio" id="deliveri_4" name="deliveri" value="4">
</form>

<h2>Оплата</h2>
<input type="radio" id="payment_1" value="1">
<input type="radio" id="payment_2" value="2"> <!-- ...то этот станет недоступен -->
<input type="radio" id="payment_3" value="3">
<input type="radio" id="payment_4" value="4">
<script>
var selected = document.querySelectorAll('input'),
 makeDisable = document.getElementById('payment_2');

selected.forEach(function(item){
item.addEventListener('change', function(event){
  switch(event.target.id){
    case 'deliveri_3':
      makeDisable.disabled=true
      makeDisable.setAttribute('class', 'random')
      return null; 
    case 'deliveri_4':
      makeDisable.setAttribute('class', 'random')
      makeDisable.disabled=false
      return null;
    default:
      makeDisable.removeAttribute('class', 'random');
      makeDisable.disabled=false
      return null;
  } 
}) 
})
</script>

Последний раз редактировалось Царь Леонид, 13.06.2016 в 17:55.
Ответить с цитированием
  #9 (permalink)  
Старый 13.06.2016, 18:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Сообщение от Царь Леонид
forEach
цикл остался
Ответить с цитированием
  #10 (permalink)  
Старый 13.06.2016, 18:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,071

Царь Леонид,
на всякий случай classList
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение цвета рамки DIV при нажатии, и сброс при нажатии на другой DIV этого класа Webtest Элементы интерфейса 3 29.06.2014 22:13
При заполнении одного input очищать второй input idShura jQuery 2 02.05.2014 14:09
добавлять type="text" при выборе option ignoramus Элементы интерфейса 5 29.04.2014 15:22
Задержка в при выборе меню bserg Элементы интерфейса 1 16.12.2013 11:36
Копирование из одного input в другой input bar-boss Общие вопросы Javascript 7 08.04.2008 19:10