.checked=true, не работающий с функцией $ jQuery

я хочу установить флажок, когда кнопка нажата.

<form action="" method="post" id="form2">
    <input type="checkbox" id="checkone" value="one" name="one" />
    <input type="button" value="Click me" id="buttonone"/>
</form>

когда я попробовал следующее, флажок не становился выбранным

$('#buttonone').click(function() {
    $('#checkone').checked=true;
});

затем я попробовал:

$('#buttonone').click(function() {
    document.getElementById('checkone').checked=true;
});

на этот раз флажок был установлен. почему это не то, что я был выбранным с функцией $ jQuery?

6
задан Nick Craver 26 July 2010 в 13:15
поделиться

4 ответа

Попробуйте

$('#checkone').attr('checked', true);

,

$('#checkone').get(0).checked = true;

или

$('#checkone')[0].checked = true; // identical to second example

Причина, по которой ваш первый код не сработал, заключается в том, что вы пытались установить свойство checked в jQuery. объект, который не будет иметь видимого эффекта, поскольку он работает только с собственным объектом DOM.

Вызывая get (0) или обращаясь к первому элементу [0], мы получаем собственный элемент DOM и можем использовать его как обычно, как во втором примере. В качестве альтернативы можно установить атрибут checked с помощью функции jQuery attr , которая также должна работать.

12
ответ дан 8 December 2019 в 15:58
поделиться

попробуйте

$('#checkone').attr('checked', true);

чистый поиск в Google по запросу «jquery check a checkbox» был правильным решением

0
ответ дан 8 December 2019 в 15:58
поделиться

Вам нужно использовать .attr() для объекта jQuery, как здесь:

$('#buttonone').click(function() {
  $('#checkone').attr('checked', true);
});

Но лучше сделать это способом DOM, как здесь:

$('#buttonone').click(function() {
  $('#checkone')[0].checked = true; //get the DOM element, .checked is on that
});

Или совсем без jQuery:

document.getElementById('buttonone').onclick = function() {
  document.getElementById('checkone').checked = true;
};
2
ответ дан 8 December 2019 в 15:58
поделиться

Try

$('#checkone').attr('checked', true);

У вас нет прямого доступа к свойствам объектов DOM, потому что jQuery оперирует коллекциями ($(selector) - это массив). Поэтому для манипулирования содержимым возвращаемых элементов определены функции.

0
ответ дан 8 December 2019 в 15:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: