Ajax警报射击两次

时间:2014-05-02 04:30:48

标签: jquery ajax

警报会持续发射两次,但不确定原因。有什么建议? .onoffswitch是一个复选框。

<script type="text/javascript">
    $(document).ready(function(){
        $('.onoffswitch').click(function(){
            var hiddenValueID = $(this).children(':hidden').val();
            if ($(this).children(':checked').length == 0)
            {
                var valueData = '0';
            }
            else
            {
                var valueData = '1';
            }

            $.ajax({
                type: "POST",
                url: "ajax.php",
                data: {value: valueData, ID: hiddenValueID} ,
                success: function(html){
                    $("#display").html(html).show();
                }
            });

        });
    });
</script>

... ajax.php

<?php
include('connect.php');

if(isset($_POST['value'])){

    $value=$_POST['value'];
    $id=$_POST['ID'];

    $sql = "UPDATE campaigns SET Status=? WHERE ID=?";
    $q = $db->prepare($sql);
    if($q->execute(array($value,$id))) {
        echo '<script>alert("Campaign Updated");</script>';
        die();
    } else{
        echo '<script>alert("Change Failed - Try Again");</script>';
        die();
    }
}
?>

3 个答案:

答案 0 :(得分:1)

尝试使用$('。onoffswitch')。off('click')。on('click',function(event){代替$('。onoffswitch')。click(function(){< / p>

答案 1 :(得分:0)

.onoffswitch是否为复选框?如果是这样,我相信click和uncheck / check都绑定到click事件。

尝试使用.mouseup()代替.click(),看看您是否遇到同样的问题。

答案 2 :(得分:0)

如果元素是复选框,则

而不是$('.onoffswitch').click(function(){将其更改为$('.onoffswitch').on('change',function(){