2010-06-25 4 views
9

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

Любые идеи?

+0

возможно, пожалуйста ... –

ответ

18
if ($("#yourCheckboxID").is(":checked")) { 
    // checkbox is checked 
} else { 
    // checkbox is not checked 
} 

будет выполнять эту работу.

+1

Работы красиво! Благодарю. – oshirowanen

0

Ну это достаточно легко найти флажков:

$(':checkbox').whatever() 

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

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

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

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

15

Что-то вроде этого:

<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> 
8

Объединяя свое решение и принятый ответ на Айн:

<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> 
1

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

<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> 
Смежные вопросы