Форум программистов, компьютерный форум, киберфорум
JavaScript: API
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
10 / 10 / 4
Регистрация: 18.10.2012
Сообщений: 224
1

Передать значение value чекнутой радиокнопки и вывести его на страницу

26.09.2016, 09:52. Показов 4102. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Есть две радиокнопки:

HTML5
1
2
3
4
5
6
7
8
<div class="radio">
                    <div class="unit" id="unit_767886">
                    <input type="radio" value="767886" data-id="390033" id="element_390033_767886" name="field390033" onclick='unhide()'>&nbsp;<label for="element_390033_767886">Дети есть</label></div>
 
 
                    <div class="unit" id="unit_767887">
                    <input type="radio" value="767887" data-id="390033" id="element_390033_767887" name="field390033" onclick='unhide()'>&nbsp;<label for="element_390033_767887">Детей нет</label></div>
                    </div></div>
Нужно чтобы они были не checked изначально и чтобы когда какую-нибудь чекнули, то значение её value вывелось в какой-то блок. Делаю так:

HTML5
1
<i id="end_children"><i id="end_no_children"></i>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$("#element_390033_767886").click(function () {
this.setAttribute('checked', 'checked');
});
 
$("#element_390033_767887").click(function () {
this.setAttribute('checked', 'checked');
});
 
 
if (document.getElementById('element_390033_767886').checked == true){
   var children = "Едут";
   document.getElementById('end_children').innerHTML = children;
} 
 
if (document.getElementById('element_390033_767887').checked == true){
    var no_children = "Не едут";
   document.getElementById('end_children').innerHTML = no_children;
}
Но ничего не выходит. В чем проблемес? :С
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.09.2016, 09:52
Ответы с готовыми решениями:

Как передать значение радиокнопки?
вот как передать текст или числа это понятно а вот значение радио-кнопки не могу осилить (?) ...

Передать в скрипт значение выбранной радиокнопки?
Здравствуйте! Подскажите, как передать в скрипт значение выбранной радиокнопки? Точнее в...

Передать значение на следующую страницу
Есть первая страница page01.htm , есть вторая страница page02.htm . Юзер идёт сначала на первую...

Передать значение из POST на другую страницу
Есть у меня такие данные $one = $_POST; $two = $_POST; $fre = $_POST; $who = $_POST; ...

4
the hardway first
Эксперт JS
2470 / 1843 / 908
Регистрация: 05.06.2015
Сообщений: 3,607
26.09.2016, 11:05 2
Лучший ответ Сообщение было отмечено dimoncheg как решение

Решение

Цитата Сообщение от dimoncheg Посмотреть сообщение
Но ничего не выходит.
http://learn.javascript.ru/devtools

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class="children">
  <div class="unit" id="unit_767886">
    <input type="radio" value="767886" data-id="390033" id="element_390033_767886" name="field390033" onclick='unhide()'>
    &nbsp;
    <label for="element_390033_767886">Дети есть</label>
  </div>
  <div class="unit" id="unit_767887">
    <input type="radio" value="767887" data-id="390033" id="element_390033_767887" name="field390033" onclick='unhide()'>
    &nbsp;
    <label for="element_390033_767887">Детей нет</label></div>
  </div>
  <div>
    <i id="end_children"></i>
    <!-- <i id="end_no_children"></i> -->
  </div>
</div>
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var hasChildren = function () {
  // Браузер вполне способен сам включить нужный radio input
  // $("#element_390033_767886").click(function () {
  //   this.setAttribute('checked', 'checked');
  // });
  //
  // $("#element_390033_767887").click(function () {
  //   this.setAttribute('checked', 'checked');
  // });
 
  var children = false;
  // if (document.getElementById('element_390033_767886').checked == true){
  //   var children = "Едут";
  //   document.getElementById('end_children').innerHTML = children;
  // }
 
  // if (document.getElementById('element_390033_767887').checked == true){
  //   var no_children = "Не едут";
  //   document.getElementById('end_children').innerHTML = no_children;
  // }
 
  // Достаточно проверить одну кнопку радио из id которой ясно что выбрано "Дети есть"
  children = $('#element_390033_767886').prop('checked');
  console.log(children);
  // и вывести значение value выбраной кнопки
  $('#end_children').text((children ? 'Дети едут' : 'Дети не едут') + ' ' + this.value);
}
 
// А это что за функция у вас? Напишу заглушку.
var unhide = function () {
  console.log('Magic unhide function');
}
 
$(function () {
  var hasChildrenRadioBtns = $('.children input:radio');
  hasChildrenRadioBtns.prop('checked', false);
  hasChildrenRadioBtns.on('change', hasChildren);
});
1
10 / 10 / 4
Регистрация: 18.10.2012
Сообщений: 224
26.09.2016, 11:54  [ТС] 3
j2FunOnly, спасибо огромное, работает, мое уважение) А как сделать, чтобы такое работало не на "да" / "нет", а на любое число радиокнопок? Я пытаюсь, но я туп.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var hasSealine = function () {
  
  // Достаточно проверить одну кнопку радио из id которой ясно что выбрано "Дети есть"
  sealine = $('#sealine').prop('checked');
  console.log(sealine);
  // и вывести значение value выбраной кнопки
  $('#end_sealine').text((sealine));
}
 
 
$(function () {
  var hasSealineRadioBtns = $('#sealine input:radio');
  hasSealineRadioBtns.prop('checked', false);
  hasSealineRadioBtns.on('change', hasSealine);
});
HTML5
1
<tr><td>Линия от моря:</td><td id="end_sealine"></td></tr>
HTML5
1
2
3
4
5
6
7
8
 <div id="sealine">
                    <h6>Линия отеля от моря</h6>
                    <div class="radio">
                    <div class="unit" id="unit_767886"><input type="radio" value="Первая линия" name="sea_line" id="sea_line1">&nbsp;<label for="element_390033_767886">Первая линия</label></div>
                    <div class="unit" id="unit_767887"><input type="radio" value="Вторая линия" name="sea_line" id="sea_line2">&nbsp;<label for="element_390033_767887">Вторая линия</label></div>
                    <div class="unit" id="unit_767888"><input type="radio" value="Третья линия" name="sea_line" id="sea_line3">&nbsp;<label for="element_390033_767888">Третья линия</label></div>
                    </div>
                    </div>
0
the hardway first
Эксперт JS
2470 / 1843 / 908
Регистрация: 05.06.2015
Сообщений: 3,607
26.09.2016, 13:40 4
Лучший ответ Сообщение было отмечено dimoncheg как решение

Решение

dimoncheg, ну смотрите:
Можно повесить на событие 'click' (ведь почти всегда надо клинуть мышкой, чтобы выбрать нужную из кнопок радио ) и получить доступ к значению атрибута 'value' через this.
Если обработчик будет на событие 'change', то надо проверять атрибут 'checked' элемента и, если этот элемент выбран, то выводить значение 'value'.
Javascript
1
2
3
4
5
6
7
var sealineClicked = function () {
  $('#end_sealine').text(this.value);
}
 
var sealineChanged = function () {
  if(this.checked) $('#end_sealine').text(this.value);
}
Добавлено через 9 минут
Можно вообще сделать так, чтобы было одна функция на все радио кнопки. Трудно гадать не видя формы.
Например если у вас все группы кнопок в родительском div с определнным id, а все поля куда вы выводите значение 'value' этой кнопки имеют такой же id, начинющийся с 'end_', то можно сделать так:
Javascript
1
2
3
4
5
6
7
8
$(function () {
  $('input:radio').on('change', function () {
    if(!this.checked) return;
    
    var parentId = $(this).closest('div').prop('id');
    $('#end_' + parentId).text(this.value);
  });
});
1
10 / 10 / 4
Регистрация: 18.10.2012
Сообщений: 224
26.09.2016, 16:48  [ТС] 5
j2FunOnly, сделал одну функцию на радиокнопки, здорово вышло, спасибо большое еще раз, я просто только вкатываюсь в JS)
0
26.09.2016, 16:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.09.2016, 16:48
Помогаю со студенческими работами здесь

Выполнить функцию и передать значение в другую страницу.
Как работает сейчас. есть index.asp &lt;form action='Open.asp' method=post&gt; &lt;input type=text...

Как передать значение бэкграунда на другую страницу?
Здравствуйте. На обоих страницах используется Canvas. Этот тап из options.xaml.cs, устанавливающий...

Передать значение из выпадающего списка на другую страницу
Здравствуйте, необходимо передать значение из выпадающего списка на другую страницу для обновления...

Передать значение переменной на другую страницу без кнопки
Доброго времени суток. В общем на странице upload.php переменной $str присваивается текст. Дальше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru