下拉菜单选择后才显示隐藏字段的搜索框

4
我在我的WordPress网站上有一个小部件,可以搜索我的自定义分类。搜索表单还有4个其他选项:最低和最高价格以及最低和最高功率。除非选择了特定的选项或其子选项,否则我希望隐藏最低和最高功率输入字段。我的表单可以工作,只需要实现jQuery。

我不懂jQuery,但我找到了这个解决方案,只是不确定如何实现它。

我的表单:

<form role="search" method="get" id="equipfilter" action="<?php bloginfo('url'); ?>/">
        <fieldset>
            <?php
                $dropdown_args = array(
                    'taxonomy'          => 'exc_equipment_cat',
                    'name'              => 'exc_equipment_cat',
                    'show_count'        => 1,
                    'orderby'           => 'name',
                    'hierarchical'      => true,
                    'echo'              => 0,
                    'walker'            => new Walker_SlugValueCategoryDropdown
                    );
                /*
                wp_dropdown_categories( $dropdown_args );
                */?>
                <?php
                $select = wp_dropdown_categories($dropdown_args);
                $select = preg_replace("#<select([^>]*)>#", "<select$1 data-select='select1'>", $select);
                echo $select;
                ?>
        </fieldset>
        <fieldset class="hidden" data-select="NOT SURE WHAT TO PUT HERE">
            <legend>Kw Range:</legend>
            <input type="text" name="kw_min" placeholder="min" value><br />
            <input type="text" name="kw_max" placeholder="max" value>
        </fieldset>
        <fieldset>
            <legend>Price Range:</legend>
            <input type="text" name="pr_min" placeholder="from" value><br />
            <input type="text" name="pr_max" placeholder="to" value>
        </fieldset>
        <input type="submit" id="filtersubmit" value="Search" />
    </form>

jQuery(已更新到测试类别时正常工作,现在我只需要弄清楚这个<fieldset class="hidden" data-select="不确定要放什么">):

jQuery(function ($){
    $(function(){
        $('.postform').change(function() {
            var selectData = $(this).attr("data-select");
            var selectValue = $(this).val();
             if($("fieldset[data-select='" + selectData + selectValue +"']").css("display") == "none"){
                 $("fieldset[data-select^='" + selectData + "']").hide();
                 $("fieldset[data-select='" + selectData + selectValue +"']").show();
             }
        });
    });
});

不得不更新脚本为$(function(){ $('.postform').change(function() { var selectData = $(this).attr("data-select"); var selectValue = $(this).val(); if($("fieldset[data-select='" + selectData + selectValue +"']").css("display") == "none"){ $("fieldset[data-select^='" + selectData + "']").hide(); $("fieldset[data-select='" + selectData + selectValue +"']").show(); } }); });现在当我选择我的测试类别时,该字段会显示。只需弄清如何与子代一起使用。 - HaneD
如果在触发类别被选择后选择了另一个类别,如何隐藏该字段。 - HaneD
2个回答

0

如果选择了另一个类别,则隐藏该字段,请将代码更改为:

<script type="text/Javascript">
    jQuery(function ($){
        $(function(){
            $('.postform').change(function() {
                var selectData = $(this).attr("data-select");
                var selectValue = $(this).val();
                $('.hidden').hide();
                 if($("fieldset[data-select='" + selectData + selectValue +"']").css("display") == "none"){
                     $("fieldset[data-select^='" + selectData + "']").hide();
                     $("fieldset[data-select='" + selectData + selectValue +"']").show();
                 }
            });
        });
    });
    </script>

在代码中添加了$('.hidden').hide();


0

如果只使用jQuery来隐藏该字段,则可以使用以下代码(如果JavaScript被禁用,则隐藏字段将显示,而且您不会失去该选项,就像通过CSS隐藏一样):

<script type="text/Javascript">
        jQuery(function ($){
            $(document).ready(function () {
                    $(".kw").hide();
                });

            $(function(){
                $('.postform').change(function() {
                    var selectData = $(this).attr("data-select");
                    var selectValue = $(this).val();
                    $('.kw').hide();
                     if($("fieldset[data-select='" + selectData + selectValue +"']").css("display") == "none"){
                         $("fieldset[data-select^='" + selectData + "']").hide();
                         $("fieldset[data-select='" + selectData + selectValue +"']").show();
                     }
                });
            });
        });
        </script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接