右键单击复选框时,不能使用jQuery更改功能

时间:2016-09-19 08:47:58

标签: jquery checkbox right-click

我有以下问题, 有table,如果我右键单击表格行,则选中复选框。

这是右键单击复选框选中的代码。

$('tr.check').contextmenu(function (e) {
        $(this).find('input[type="checkbox"].check_row').prop('checked', true);
        return false;
  });

但问题是我希望在更改后获得row id号码复选框。 这样做的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

我找到了我真正想要的正确的。

function populate_context_menu($object){
                var ischecked = $($object).is(':checked');
                var jsonString = JSON.stringify(values);

                var ischecked = $($object).is(':checked');
                if (ischecked)
                {
                    $("#checked-a").fadeIn(200);

                    jQuery.ajax({
                        type: "POST",
                        url: "<?php echo base_url(); ?>" + "files/dropdown_menu",
                        dataType: 'json',
                        data: {files_ids: jsonString},
                        success: function (res) {
                            if (res)
                            {
                                $("div#result").show();
                                $("div#value").html(res.jsonString);
                            }
                        }
                    });

                } else {
                    if (values.length === 0) {
                        $("#checked-a").fadeOut(200);
                    }
                }
            };


 $(".selected_check").change(function () {

                    populate_context_menu(this);

            });

这是右键单击

$('tr.check').contextmenu(function (e) {
                $cb = $(this).find('input[type="checkbox"].selected_check');
                $($cb).attr('checked', 'checked');                                       
                populate_context_menu($cb);

                return false;
            });

答案 1 :(得分:0)

当您使用prop()attr()方法选中或取消选中时,您必须使用change()trigger('change')触发事件。

$('tr.check').contextmenu(function (e) {
        $(this).find('input[type="checkbox"].check_row').prop('checked', true);
        $(this).find('input[type="checkbox"].check_row').change(); // trigger change event
        //OR
        //$(this).find('input[type="checkbox"].check_row').trigger('change'); 

         return false;
  })