Получить идентификатор флажка? - jQuery
Эй, мне интересно, как получить идентификатор флажка, когда он установлен.
Это то, что мой HTML, вероятно, будет выглядеть сначала:
<div class="check_filter">
<div id="filter">
<input type="checkbox" id="check1" /><label for="check1">Marketing</label>
<input type="checkbox" id="check2" /><label for="check2">Automotive</label>
<input type="checkbox" id="check3" /><label for="check3">Sports</label>
</div>
</div><!-- End check_filter -->
Я предполагаю, что jQuery будет выглядеть примерно так:
$(document).ready(function() {
$(":checkbox").click(function(){
var id = $(this).attr('id');
$.post("index.php", { id: id });
//return false to ensure the page doesn't refresh
return false;
});
});
Я пытаюсь получить идентификатор проверенного элемента и затем отправить этот идентификатор в запросе mysql, чтобы захватить результаты идентификатора из базы данных.
Спасибо за любую помощь в этом.
Ответы
Ответ 1
Вы, вероятно, хотите здесь change
, например:
$(function() {
$(":checkbox").change(function(){
$.post("index.php", { id: this.id, checked: this.checked });
});
});
Это сообщение, когда изменяется флажок, и позволяет стороне PHP знать идентификатор и проверяется ли он. Нет.
Ответ 2
JQuery, который вы предоставили, отлично работает? Вероятно, вы должны удалить return false
, чтобы показать, что флажок установлен.
EDIT: $. post() для асинхронного запроса (метод AJAX), поэтому обновление страницы не будет.
РЕДАКТИРОВАТЬ 2: Вы также можете посмотреть, установлен ли флажок (а не только его нажатие):
$(document).ready(function() {
$(":checkbox").click(function(){
var id = $(this).attr('id');
var isChecked = $(this).attr('checked'));
$.post("index.php", { id: id, isChecked: isChecked });
});
});
Ответ 3
Вы можете использовать селектор :checkbox
, а затем проверить id
и проверенные свойства элемента DOM следующим образом:
var id = $(this).find(":checkbox")[0].id;
var isChecked = $(this).find(":checkbox")[0].checked;
Ответ 4
Вы можете лучше использовать jQuery get вместо post. Он позволяет обрабатывать выходные данные вашего запроса: http://api.jquery.com/jQuery.get/
Пример:
$(document).ready(function() {
$(':checkbox').click(function(){
var id = $(this).attr('id');
var isChecked = $(this).attr('checked'));
$.get(
'getcheckbox.php',
{ id: id, isChecked: isChecked },
function(data) {
//return value in getcheckbox.php and use it in on complete function
var result = data;
}
);
});
});
Ответ 5
Зачем мне это нужно только для имени флажка, но $(this), чтобы получить доступ к значению
$('input:checkbox').change( function() {
console.log("here i am: " + this.name + " value = " + $(this).val() );
}
);