Простой JavaScript для получения сводных значений type = "radio"

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

Имейте form.html, который собирает данные и с помощью jquery получает значения в summary.html. Возникли проблемы с получением значений переключателя "пол".

form.html

    <label for = "firstname">First Name:</label><input id = "firstname" name = "firstname" type = "text" autofocus placeholder = "John" required = "required" maxlength = "15" />
    <br>
    <label for = "surname">Surname:</label><input id = "surname" name = "surname" type = "text" placeholder = "Smith" required = "required" maxlength = "30" />
    <br>
    <br>

    Gender:
    <input id = "male" type = "radio" name = "gender" value = "male" /><label for = "male">Male</label>
    <input id = "female" type = "radio" name = "gender" value = "female" /><label for = "female">Female</label>
    <input id = "prefernotsay" type = "radio" name = "gender" value = "prefernotsay" checked /><label for = "prefernotsay">Prefer Not to Say</label>
    <br>   

    <input id = "submit" type = "submit" value = "submit" />
    <br>    
</form>

summary.html

<body>
<table>
    <tr>         
        <td id = "firstname" /></td>
    </tr>
    <tr>
        <td id = "surname" /></td>
    </tr>      
    <tr>
        <td id = "gender" /></td>
    </tr>
</table>

js

window.onload = function () {
"use strict";

var url = new URL(window.location.href);

var firstname = url.searchParams.get("firstname"); document.getElementById("firstname").innerText = firstname;

var surname = url.searchParams.get("surname"); document.getElementById("surname").innerText = surname;    

var radios = document.getElementsByName('gender');

for (var i = 0, length = radios.length; i < length; i++) {
    if (radios[i].checked) {
        alert(radios[i].value);
        break;
    }
}

};

Я вижу пару вещей: 1. Вы вызываете весь этот код при загрузке окна. Я предполагаю, что вы захотите сделать это при отправке формы или нажатии кнопки. 2. Я не вижу здесь использования jQuery, это все селекторы js dom.

bhmahler 18.10.2018 16:04

в чем проблема или ошибка?

Arun Kumar 18.10.2018 16:05

Кроме того, я предполагаю, что второй html - это страница, на которую вы публикуете. Он не содержит никаких переключателей, вам нужно получить значение, как и другие значения document.getElementById ("пол"). InnetText = url.searchParams.get ("пол")

bhmahler 18.10.2018 16:09

Ага, извини. простые селекторы dom, пытающиеся медленно изучить некоторые функции.

N00bie-Sam 18.10.2018 16:10
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
85
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Предполагая, что вы отправляете параметры из своей формы на вторую страницу, вы должны получать значение пола из searchParams, как и другие значения.

window.onload = function () {
    var url = new URL(window.location.href);

    document.getElementById("firstname").innerText = url.searchParams.get("firstname");

    document.getElementById("surname").innerText = url.searchParams.get("surname");    

    document.getElementById("gender").innerText = url.searchParams.get("gender");
}

Вопрос OP конкретно требует решения jQuery.

dossy 18.10.2018 17:58

Если вы посмотрите на его пример, он вообще не получает значения с помощью JQuery.

bhmahler 18.10.2018 18:00

Да, просто перечитайте текст вопроса - название вопроса вводит в заблуждение. Я только что отредактировал вопрос s/jquery/JavaScript/. :-)

dossy 18.10.2018 18:01

извините за то, что сбил с толку мой вопрос

N00bie-Sam 18.10.2018 18:04
Ответ принят как подходящий

Чтобы получить выбранное значение в группе переключателей, вы хотите выбрать элемент :checked в группе и получить его .val(). Вот простая версия, которую вы можете запустить и посмотреть:

jQuery(function ($) {
  $('form').on('submit', function (e) {
    e.preventDefault();
    
    var gender = $('input[name = "gender"]:checked').val();
    
    alert('Gender = ' + gender);
  });
});
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<form>
  <div>
    Gender
    <input id = "male" type = "radio" name = "gender" value = "male" /><label for = "male">Male</label>
    <input id = "female" type = "radio" name = "gender" value = "female" /><label for = "female">Female</label>
    <input id = "prefernotsay" type = "radio" name = "gender" value = "prefernotsay" checked /><label for = "prefernotsay">Prefer Not to Say</label>
  </div>
  
  <div><input id = "submit" type = "submit" value = "submit" /></div>
</form>

Просто перечитайте свой вопрос: вы пытаетесь отобразить выбранное значение на странице, на которую отправляется ваша форма, а не на странице, на которой отображается форма? В этом случае использование url.searchParams.get("gender") и использование этого значения кажется ответом на ваш вопрос.

dossy 18.10.2018 18:01

Благодарю вас! Извините за то, что сбил с толку мой вопрос

N00bie-Sam 18.10.2018 18:03

Другие вопросы по теме