Состояние флажка JQuery Ajax - PullRequest
11 голосов
/ 25 июня 2010

У меня есть флажки на моей странице, для которых я хотел бы отправить их состояние обратно в базу данных через ajax. Я знаю, как использовать jquery с ajax, но я не знаю, как получить проверенное состояние, как проверенное, так и не отмеченное вместе с идентификатором флажка, чтобы я мог отправить его обратно на сервер.

Есть идеи?

Ответы [ 5 ]

21 голосов
/ 25 июня 2010
if ($("#yourCheckboxID").is(":checked")) {  
    // checkbox is checked 
} else {
    // checkbox is not checked 
}

сделает работу.

16 голосов
/ 25 июня 2010

Примерно так:

<script type="text/javascript">
    $(document).ready(function(){
        $("input:checkbox").change(function() { 
            if($(this).is(":checked")) { 
                $.ajax({
                    url: 'on_off.aspx',
                    type: 'POST',
                    data: { strID:$(this).attr("id"), strState:"1" }
                });
            } else {
                $.ajax({
                    url: 'on_off.aspx',
                    type: 'POST',
                    data: { strID:$(this).attr("id"), strState:"0" }
                });
            }
        }); 
    });
</script>
9 голосов
/ 31 августа 2012

Объединение вашего решения и принятого ответа от Ain:

<script type="text/javascript">
  $(document).ready(function(){
    var isChecked = $("input:checkbox").is(":checked") ? 1:0; 
    $.ajax({
            url: 'on_off.aspx',
            type: 'POST',
            data: { strID:$("input:checkbox").attr("id"), strState:isChecked }
    });        
  });
</script>
2 голосов
/ 03 августа 2015

Добавление обратно в событие изменения к объединенному решению. Хотите, чтобы это срабатывало при каждом изменении флажка.

<script type="text/javascript">
    $(document).ready(function(){
        $("input:checkbox").change(function() { 
            var isChecked = $("input:checkbox").is(":checked") ? 1:0; 
            $.ajax({
                url: 'on_off.aspx',
                type: 'POST',
                data: { strID:$("input:checkbox").attr("id"), strState:isChecked }
            });        
        });        
    });
</script>
0 голосов
/ 25 июня 2010

Ну, достаточно просто найти флажки:

$(':checkbox').whatever()

Хитрость в том, что в HTML флажки имеют значение, которое имеет смысл только тогда, когда флажок . Когда они не проверены, что вы говорите серверу?

Что ж, если у вас есть соглашение для работы (возможно, всегда отправляющее «true», если отмечено, и «false», если не отмечено), следующее, что вам нужно решить, - это как получить их на ваш сервер. Вы можете использовать функцию jQuery param, чтобы превратить список в строку параметров:

var params = $.param($(':checkbox').map(function() {
   return { name: this.id, value: !!this.checked };
}));

Это дает вам строку, готовую для привязки к URL-адресу или отправки в виде данных через $.ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...