单选按钮会激活ajax一次,但之后无法工作

时间:2016-11-30 04:26:34

标签: javascript php jquery ajax radio-button

我有以下表格,每个记录都有一个重复按钮。如果给定记录的$ item [' active']的值为0,并且我单击单选按钮使其为1,则ajax将触发,并且一切都按预期工作。新值为1;但是,如果我然后单击另一个按钮将变量的值返回0,则没有任何反应。就好像ajax会发射一次然后不再可用。

<form action="<?php echo $this->form_action; ?>" method="post">
    <p class="hide"><input name="status" type="text" value="" /></p>
    <table id="manageItAll" cellpadding="0" cellspacing="0" border="0">

        <thead>
        <tr>
            <th><?php echo $this->translate('Title');?></th>
            <th><?php echo $this->translate('Status');?></th>
        </tr>
        </thead>

        <tbody>
        <?php $ind = 0; ?>
        <?php foreach ($this->items as $item) {;?>
            <tr id="<?php echo $item['id']; ?>">
                <td data-label="Title"><span class="orangelink"><?php echo $item->title; ?></span></td>

                <td align="left" style="padding-left:22px"
                    class="color-status-<?php echo $item['active']; ?>">
                    <?php if (in_array($item['active'], array(0, 1))) { ?>
                        <input type="radio" name="item[<?php echo $ind; ?>][status]"
                               value="1" <?php if ($item['active'] == 1) echo 'checked'; ?>>Active
                        <br>
                        <input type="radio" name="item[<?php echo $ind; ?>][status]"
                               value="0" <?php if ($item['active'] == 0) echo 'checked'; ?>>Inactive
                    <?php } else { ?>
                        <?php echo $item['active']; ?>
                    <?php } ?>
                </td>
            </tr>
            <?php $ind++; ?>
        <?php } ?>
        </tbody>
    </table>
</form>


<script type="text/javascript">
  $(document).ready(function() {
    if (typeof ind == "undefined") {
        ind = 0;
    }
    $('input[type="radio"]').live('change', function () {
        var status = this.value;
        var id = $(this).parents('tr').attr('id');
        $.ajax({
            type: 'post',
            url: "?module=items&controller=listing&action=changeStatus",
            data: 'id=' + id + '&status=' + status,
            beforeSend: function () {

                if (status == '0') {
                    $('#' + id).animate({
                        'backgroundColor': '#FFBFBF'
                    }, 400);
                } else {
                    $('#' + id).animate({
                        'backgroundColor': '#A3D1A3'
                    }, 400);
                }
            },
            success: function (result) {
                if (result == 'ok') {
                    $.get(window.location.href, function (data) {
                        $('#' + id).html($(data).find('#' + id).html());
                        setTimeout(function () {
                            $("#" + id + "").animate({'backgroundColor': 'transparent'}, 400);
                            deletePage();
                        }, 500);
                    });
                } else {
                    alert(result);
                    $("#" + id + "").animate({'backgroundColor': 'transparent'}, 400);
                }
            }
        });
    });
});

</script>

1 个答案:

答案 0 :(得分:0)

尝试更改

$('input[type="radio"]').click(function () {

$('input[type="radio"]').on('change',function () {