【问题标题】:Checkbox save onchange function复选框保存 onchange 功能
【发布时间】:2012-02-14 22:21:56
【问题描述】:

我正在尝试创建一个脚本来保存选中的复选框。我现在拥有的代码在勾选读取时禁用添加和批准,并在勾选添加/批准中的任何一个时禁用读取。现在我遇到的问题是,当我将 ajax 提交添加到 jquery 时,它不会保存记录并且不再禁用复选框(假设我勾选了读取)。

这是我目前得到的。

$(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);
            }
        });
    });
});

例如:http://jsfiddle.net/bGatX/

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

非常感谢。

【问题讨论】:

  • 从我们的角度来看,很难确定您的问题到底是什么。你会考虑用随附的 HTML 制作 jsFiddle 吗?

标签: php jquery mysql codeigniter onchange


【解决方案1】:

查看您的 jsFiddle...您实际上并没有带有 id="input" 的 HTML 元素,尽管您尝试使用以下方法保存 id:var id = $('#input').val();

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

顺便说一句,作为冗余和性能问题:$(this).prop('disabled',false); 在所有条件句中都很常见,可以作为一个共同因素被拉到前面。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多