选中复选框时启用确认框按钮 jquery

Enable buttons of confirmbox when checkbox checked in jquery

这是 functions.php 中的代码 file.There 是输入的确认框 value.When 我按确定按钮,值被保存。但我希望用户先选中复选框,然后值将是 entered.This 我所做的一切,但问题在于,当我在没有选中复选框的情况下按下确定按钮时,出现警报并同时隐藏确认框。我希望确认框在警报消失后保持其位置。

var mess ="abc";

jQuery.confirm({
                'title'     : '<?php _e('Terms','Theme'); ?>',
                'message'   :  mess ,
                'buttons'   : {
                    '<?php _e('OK','Theme'); ?>'    : {
                        'class' : 'button1',
                        'action': function()
                        {
                            if(jQuery('#check').is(":checked")){
                                post_ok = 1; 
                                jQuery("#my_form_"+id).submit();
                                return true;
                            }
                            else{
                                alert("select terms and conditions first.");
                            }
                        }
                    },
                    '<?php _e('No','Theme'); ?>'    : {
                        'class' : 'button2',
                        'action': function(){ return false; }   
                    }
                }
            });

confirm.js

(function($){

$.confirm = function(params){

    if($('#confirmOverlay').length){
        // A confirm is already shown on the page:
        return false;
    }

    var buttonHTML = '';
    $.each(params.buttons,function(name,obj){

        // Generating the markup for the buttons:

        buttonHTML += '<a href="#" class="button '+obj['class']+'">'+name+'<span></span></a>';

        if(!obj.action){
            obj.action = function(){};
        }
    });

    var markup = [
        '<div id="confirmOverlay">',
        '<div id="confirmBox">',
        '<h1>',params.title,'</h1>',
        '<p>',params.message,'</p>',
        '<div id="confirmButtons">',
        buttonHTML,
        '</div></div></div>'
    ].join('');

    $(markup).hide().appendTo('body').fadeIn();

    var buttons = $('#confirmBox .button'),
        i = 0;

    $.each(params.buttons,function(name,obj){
        buttons.eq(i++).click(function(){

            // Calling the action attribute when a
            // click occurs, and hiding the confirm.

            obj.action();
            $.confirm.hide();
            return false;
        });
    });
}

$.confirm.hide = function(){
    $('#confirmOverlay').fadeOut(function(){
        $(this).remove();
    });
}

})(jQuery);

此问题已解决。 我为 button1 分配了一个 ID 并应用 属性(禁用)。

var agree_button = document.getElementById('agree_button');

jQuery.confirm({
                'title'     : '<?php _e('Terms','Theme'); ?>',
                'message'   :  mess ,
                'buttons'   : {
                    '<?php _e('OK','Theme'); ?>'    : {
                        'class' : 'button1',
                        'id' : 'agree_button',
                        'action': function()
                        {
                            if(jQuery('#check').is(":checked")){
                                my_post_ok = 1; 
                                jQuery("#my_form_"+id).submit();
                                return true;
                            }
                            else{
                                alert("select terms and conditions first.");
                                agree_button.disabled = false;
                            }
                        }
                    },
                    '<?php _e('No','Theme'); ?>'    : {
                        'class' : 'button2',
                        'action': function(){ return false; }   
                    }
                }
            });