я хочу установить флажок, когда кнопка нажата.
<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?
Попробуйте
$('#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
, которая также должна работать.
попробуйте
$('#checkone').attr('checked', true);
чистый поиск в Google по запросу «jquery check a checkbox» был правильным решением
Вам нужно использовать .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;
};
Try
$('#checkone').attr('checked', true);
У вас нет прямого доступа к свойствам объектов DOM, потому что jQuery оперирует коллекциями ($(selector)
- это массив). Поэтому для манипулирования содержимым возвращаемых элементов определены функции.