2010-06-25 257 views
9

我在我的页面上有复选框,我想通过ajax将它们的状态发送回数据库。我知道如何使用jQuery与Ajax,但我不知道如何获得选中的状态,既复选框也取消选中复选框的ID,以便我可以将它发送回服务器。jQuery Ajax复选框状态

任何想法?

+0

可以,你可以请... – 2010-06-25 11:50:15

回答

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

会完成这项工作。

+1

很好地工作!谢谢。 – oshirowanen 2010-06-25 12:13:03

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>