Подтвердить что ты не робот

Проверьте переключатель с помощью javascript

По какой-то причине я не могу понять это.

У меня есть некоторые переключатели в моем html, который переключает категории:

<input type="radio" name="main-categories" id="_1234" value="1234" /> // All
<input type="radio" name="main-categories" id="_2345" value="2345" /> // Certain category
<input type="radio" name="main-categories" id="_3456" value="3456" /> // Certain category
<input type="radio" name="main-categories" id="_4567" value="4567" /> // Certain category

Пользователь может выбрать то, что ему нужно, но когда какое-то событие срабатывает, я хочу установить переключатель 1234 для установки флажка, потому что это переключатель по умолчанию.

Я пробовал версии этого (с jQuery и без него):

document.getElementById('#_1234').checked = true;

Но он, похоже, не обновляется. Мне нужно, чтобы он заметно обновился, чтобы пользователь мог его увидеть. Может ли кто-нибудь помочь?

EDIT: Я просто устал и проглядел #, спасибо за указание, что и $.prop().

4b9b3361

Ответ 1

Не смешивайте синтаксис CSS/JQuery (# для идентификатора) с собственным JS.

Собственное решение JS:

document.getElementById("_1234").checked = true;

Решение JQuery:

$("#_1234").prop("checked", true);

Ответ 2

Если вы хотите установить кнопку "1234", вам нужно использовать свой "id":

document.getElementById("_1234").checked = true;

Когда вы используете API-интерфейс браузера ( "getElementById" ), вы не используете синтаксис селектора; вы просто передаете фактическое значение "id", которое вы ищете. Вы используете синтаксис селектора с помощью jQuery или .querySelector() и .querySelectorAll().

Ответ 3

Самый простой способ, вероятно, будет с jQuery, как показано ниже:

$(document).ready(function(){
  $("#_1234").attr("checked","checked");
})

Это добавляет новый атрибут "флажок" (который в HTML не нуждается в значении). Просто не забудьте включить библиотеку jQuery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

Ответ 4

Сегодня, в 2016 году, сохранить document.querySelector, не зная идентификатор (особенно если у вас более двух переключателей):

document.querySelector("input[name=main-categories]:checked").value

Ответ 5

С помощью функции document.getElementById() вам не нужно передавать # перед идентификатором элемента.

код:

document.getElementById('_1234').checked = true;

Демо: JSFiddle