2010-06-25 32 views
9

Tôi có các hộp kiểm trên trang của mình mà tôi muốn gửi trạng thái của chúng về cơ sở dữ liệu thông qua ajax. Tôi biết làm thế nào để sử dụng jquery với ajax, nhưng tôi không biết làm thế nào để có được trạng thái kiểm tra, cả hai kiểm tra và bỏ chọn cùng với id của hộp kiểm để tôi có thể gửi nó trở lại máy chủ.Trạng thái hộp kiểm jQuery Ajax

Bất kỳ ý tưởng nào?

+0

có thể, bạn có thể vui lòng ... –

Trả lời

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

sẽ thực hiện công việc.

+1

Hoạt động tốt! Cảm ơn. – oshirowanen

0

Vâng thật dễ dàng, đủ để tìm các hộp kiểm:

$(':checkbox').whatever() 

Bí quyết là trong HTML hộp kiểm chỉ có một giá trị đó là ý nghĩa khi kiểm tra. Khi họ không được kiểm tra, bạn sẽ nói gì với máy chủ?

Nếu bạn đã có một quy ước để làm việc (có thể luôn gửi "đúng" khi được chọn và "sai" khi không được chọn), điều tiếp theo bạn phải quyết định là cách đưa chúng đến máy chủ của bạn. Bạn có thể sử dụng chức năng jQuery param để biến danh sách vào một chuỗi tham số:

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

Cung cấp cho bạn một chuỗi sẵn sàng để được tacked vào một URL hoặc gởi dữ liệu thông qua $.ajax.

15

Something như thế này:

<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

Kết hợp giải pháp của bạn và câu trả lời được chấp nhận bởi 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> 
1

Cộng lại trong trường hợp thay đổi về giải pháp sáp nhập. Bạn muốn hộp kiểm này kích hoạt mỗi lần thay đổi.

<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> 
Các vấn đề liên quan