单选按钮检查并取消选中onclick并发送数据

时间:2018-03-26 05:38:15

标签: javascript php jquery ajax radio

我正在尝试使用单选按钮通过ajax发送数据。如果单击并选中单选按钮,则在数据库中设置值1。如果已选中单选按钮,但单击以取消选中它,则将值0发送到数据库。我正在使用的代码发送值onclick并检查单选按钮但不取消选中,因此不会将值发送到数据库。请帮忙。

<input type="radio" name="home['. $row["id"].']" id="'. $row["id"].'">

<script>
$(document).ready(function(){
    $('input[type="radio"]').click(function(){

        var checked = $(this).prop('checked');

        if (checked != 'checked') {
            $(this).prop('checked', true);
            var id = $(this).attr('id');
            $.ajax({
                 url:"updateaddress.php",
                 method:"POST",
                 data:{home:"1",id:id,},
            });
        } else if (checked == 'checked') {
            $(this).prop('checked', false);
            var id = $(this).attr('id');
            $.ajax({
                 url:"updateaddress.php",
                 method:"POST",
                 data:{home:"0",id:id,},
        });

        }
    });                           
});
</script>

3 个答案:

答案 0 :(得分:2)

复选框和

$('input[type="checkbox"]').on("click", function(){ 
  $.post("updateaddress.php",{home:this.checked,id:this.id});
}); 

就是你需要的一切

如果必须使用收音机,请查看

How to Check/Uncheck single radio button

$('input[type="radio"]').on("click", function(){ 
  $.post("updateaddress.php",{home:this.checked,id:this.id});
  this.checked=!this.checked;
}); 

答案 1 :(得分:1)

当有多个选项时,使用单选按钮,用户只能检查一个选项。因此,用户在检查时无法取消选中单选按钮。您明确地创建了一个onclick监听器并更改单选按钮状态。但它不是建议。你可以使用复选框来实现onchange事件。

Invoke-Sqlcmd

答案 2 :(得分:0)

<input type="radio" name="home['. $row["id"].']" id="'. $row["id"].'">

<script>
$(document).ready(function(){
    $('input[type="radio"]').click(function(){
        var data = {home:"0",id:$(this).attr("id")};
        if ($(this).is(":checked")) {
            data = {home:"1",id:$(this).attr("id")};
        }
         $.ajax({
                 url:"updateaddress.php",
                 method:"POST",
                 data:data,
         });

    });                           
});
</script>

您可以使用此脚本。只需选中是否选中单选按钮,然后相应地发送您的值。