复选框保存onchange功能

时间:2012-02-14 22:21:57

标签: php jquery mysql codeigniter onchange

我正在尝试创建一个可以保存勾选复选框的脚本。我现在的代码禁用了add& amp;勾选读取时批准,勾选添加/批准时禁用读取。现在我遇到的问题是,当我向jquery添加ajax提交时,它不保存记录,它不再禁用复选框(假设我勾选了读取)。

这是我到目前为止所得到的。

$(document).ready(function(){
    $('#list-tbl tr').each(function(){

        var $this = $(this);
        var id = $('#input').val();
        $('input[type=checkbox]', $this).change(function(){
            if($('.read', $this).is(':checked')){
                $('input[type=checkbox]', $this).prop('disabled',true);
                $.ajax({
                    type: 'POST',
                    url: <?= site_url('admin/update')?>,
                    dataType: "json",
                    data: { id: id }, 
                    success: function(data) { 
                        alert("Updated");
            }
        });
                $(this).prop('disabled',false);
            } else if($('.add', $this).is(':checked') || $('.approve', $this).is(':checked')) {
                $('.read', $this).prop('disabled', true);
                $(this).prop('disabled', false);
            } else{
                $('input[type=checkbox]', $this).prop('disabled',false);
                $(this).prop('disabled',false);
            }
        });
    });
});

Ex:http://jsfiddle.net/bGatX/

我有点沮丧我只想以正确的方式保存数据并执行禁用......

非常感谢。

1 个答案:

答案 0 :(得分:1)

查看你的jsFiddle ......你实际上并没有id="input"的HTML元素,即使你试图使用以下内容保存id:var id = $('#input').val();

这是您尝试发送到服务器的ID,但它并不存在。你真的想做什么?确定某个用户是否已阅读/添加/批准特定项目?如果是这种情况,您需要发送到服务器的是用户ID与表示用户是否读取/添加或批准项目的字符串相结合。

在一个小问题上,作为冗余和表现的问题:$(this).prop('disabled',false);在所有条件中都很常见,可以作为一个共同因素拉到前面。