Флажок javascript возвращает 1-е значение по умолчанию вместо выбранного значения

php

// iterating through the data and displaying in table format

foreach($data['schoolList'] as $school)
    {
    echo'<tr>';
    echo '<td><input type=checkbox class=check id=check value='.$school['sid'].'></td>';
    echo '<td>'.$school['sid'] .'</td>';
    echo '<td>'.$school['name'] .'</td>';
    echo '<td>'.$school['specialization'].'</td>';
    echo'</tr>';
} 
echo '<button onclick = "myFunction()">Apply</button>';

JavaScript

<script>
    //to restrict the user to select only 3 checkboxes

    $("input:checkbox").click(function() {
        let x = $("input:checkbox:checked").length >= 3;     
        $("input:checkbox").not(":checked").attr("disabled",x);
    });
    let y=[];               
    function myFunction() {
        y= document.getElementById("check").value;
        console.info(y);  
    }                             
</script>

Он регистрирует только первый идентификатор школы, независимо от того, что я выбираю, даже если я выбираю более 1 флажка! может ли кто-нибудь помочь мне, как записать все значения консоли! Спасибо!

у вас может быть только один идентификатор в документе. Вы всегда получите один вход с getElementById

Steven Stark 15.04.2019 22:53

Используйте класс в качестве селектора вместо идентификатора.

GrumpyCrouton 15.04.2019 22:56

я тоже использовал селектор все тот же

faiz 15.04.2019 23:04

отображает 1 несмотря ни на что

faiz 15.04.2019 23:04
Поведение ключевого слова "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) для оценки ваших знаний,...
0
4
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

document.getElementById("check") возвращает только первый элемент с id = "check", потому что идентификатор является уникальным идентификатором.

Вместо этого используйте getElementsByClassName() или используйте jQuery:

<script>
    //to restrict the user to select only 3 checkboxes

    $("input:checkbox").click(function() {
        let x = $("input:checkbox:checked").length >= 3;     
        $("input:checkbox").not(":checked").prop("disabled", x);
    });
    let y = [];               
    function myFunction() {
        $(":checked").each(function () {
            y.push($(this).val());
        });
        console.info(y);  
    }                             
</script>

@mrDincleman отображает все значения флажков вместо значений, отмеченных пользователем.

faiz 15.04.2019 23:10

есть ли способ сделать это jquery, если это проще? или даже javascript!

faiz 15.04.2019 23:11

@faiz Я обновил свой ответ и дополнительно заменил attr() на prop() (api.jquery.com/prop/#entry-longdesc)

mrDinckleman 15.04.2019 23:17

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