仅在选中复选框时显示字段

时间:2015-09-20 02:38:29

标签: php checkbox woocommerce

我有以下代码:

<div class="dk-form-group">
        <label class="dk dk-control-label" for=""><?php _e( 'Manage Items?', 'dk' ); ?></label>
        <div class="dk dk-text-left">
            <?php dk_post_input_box( $post->ID, '_manage_items', array('label' => __( 'Enable item management', 'dk' ) ), 'checkbox' ); ?>
        </div>
    </div>

    <div class="dk-form-group">
        <label class="dk dk-control-label" for="_item_qty"><?php _e( 'Item Qty', 'dk' ); ?></label>
        <div class="dk dk-text-left">
            <input type="number" name="_item" id="_item" step="any" placeholder="10" value="<?php echo !empty( $_stock ) ? wc_stock_amount( $_stock ) : 1; ?>">
        </div>
    </div>

基本上你可以猜到,我只是在选中复选框时才显示输入字段。

我一直试图添加以下代码:

$('_manage_items').click(function() {
  $('_item')[this.checked ? "show" : "hide"]();
});

所以我的最终代码如下:

<div class="dk-form-group">
            <label class="dk dk-control-label" for=""><?php _e( 'Manage Items?', 'dk' ); ?></label>
            <div class="dk dk-text-left">
                <?php dk_post_input_box( $post->ID, '_manage_items', array('label' => __( 'Enable item management', 'dk' ) ), 'checkbox' ); ?>

               <?php
            $('_manage_items').click(function() {
            $('_item')[this.checked ? "show" : "hide"]();
            }); ?>

            </div>
        </div>

        <div class="dk-form-group">
            <label class="dk dk-control-label" for="_item_qty"><?php _e( 'Item Qty', 'dk' ); ?></label>
            <div class="dk dk-text-left">
                <input type="number" name="_item" id="_item" step="any" placeholder="10" value="<?php echo !empty( $_stock ) ? wc_stock_amount( $_stock ) : 1; ?>">
            </div>
        </div>

但那只是抛出错误。因此,我不确定是否将此代码段正确添加到复选框代码中的正确位置,然后我不确定代码段$('_manage_items')$('_item')中的名称是否为输入正确。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

试试这个:

$('input[name="_manage_items"]').click(function() {
  $('input[name="_item"]')[this.checked ? "show" : "hide"]();
});