根据另一个复选框的状态禁用复选框

时间:2015-01-23 作者:pSyToR

我正试图根据另一个复选框的状态禁用一个复选框。

<form action="options.php" method="post" id="form_submission">
    <table>
        <tr>
            <td width="200px">
                <label for="first_option"><?php _e(\'First Option:\', \'my_plugin\'); ?></label>
            </td>
            <td>
                <input type="checkbox" name="first_option_show" value="show" <?php echo (get_option(\'first_option_show\')=="show" ? \'checked\' : \'\');?>>
            </td>
            <td>
                <input type="checkbox" name="first_option_required" value="required" <?php echo (get_option(\'first_option_required\')=="required" ? \'checked\' : \'\');?>>
            </td>
        </tr>
    </table>

        <input type="submit" name="submit" value="Save Settings">

</form>
因此,我希望在上面的脚本中,当“first\\u option\\u show”未选中时,我需要禁用“first\\u option\\u required”(无论“first\\u option\\u required”的状态是选中还是未选中,我都不会清除数据库中的数据)。

我也需要在加载页面时运行它,因为正如您所看到的,“复选框”的状态来自选项。

我知道这可能很容易,但我无法理解。

我曾经使用Javascript并检查不同的值,但现在我使用PHP和html,我无法让它工作。

为了确保我提供更多信息,以下内容将位于管理区域,用于插件开发,这是针对不同表单中的字段,一个选项表示该字段是否将在页面表单中“显示”,另一个选项表示该字段是否为必填字段,这就是为什么如果该字段未显示,我希望在“必填”字段时禁用该选项。

提前感谢!

2 个回复
SO网友:David Gard

这对于你的需求来说可能有点过头了,但我在我的网站上使用了一个扩展版。

此脚本将-

检查first_option_required 选项应在页面加载中(并设置)

更改first_option_required 更改时的按钮first_option_show 选项这是通过事件hadler进行管理的,该事件hadler将捕获对first_option_show 选项

仔细检查输入名称是否符合您的需要,然后将代码粘贴到需要此功能的页面可以访问的任何JS文件中。

Note - 如果您还没有包含JS文件并需要帮助,请告知我们。

jQuery(function($){

    /**
     * Once the document is ready, initialise the \'checkResponses\' object
     */
    $(document).ready(function(){
        checkResponses.init();
    });

    /**
     * Monitor the change is state to user responses in my form
     */
    checkResponses = {

        /**
         * Psuedo constructor
         */
        init : function(){
            this.create_events();
            this.maybe_disable_first_option_required();
        }, // init

        /**
         * Create events required for monitoring
         */
        create_events : function(){

            var t = this;   // This object

            $(\'input[name=first_option_show]\').on(\'change\', function(){
                t.maybe_disable_first_option_required();
            });

        }, // create_events

        /**
         * Check to see if the \'first_option_required\' options should be disabled or not
         */
        maybe_disable_first_option_required : function(){

            if($(\'input[name=first_option_show]\').is(\':checked\')){
                alert(\'Removing...\');
                $(\'input[name=first_option_required]\').removeAttr(\'disabled\');
            } else {
                alert(\'Adding...\');
                $(\'input[name=first_option_required]\').attr(\'disabled\', true);
            }

        } // maybe_disable_first_option_required

    }

});

SO网友:Alexey

复选框的状态只能通过JavaScript知道。在jQuery中,它可能如下所示:

if($("input[name=first_option_show]").not(":checked")){
  $("input[name=first_option_required]").attr("disabled",true);
}

结束

相关推荐

在page.php中创建的变量在header.php中为空

好的,我在page中实例化了一个类。php。那我就给你打电话get_header() 包括页眉。php现在在页眉中。php我需要访问这个类对象并执行它的一个方法,但我遇到了以下错误:\\N致命错误:未捕获异常“BadMethodCallException”,消息为“调用非对象上的成员函数links()(NULL)”我应该使用require 而不是get_header() ?