jQuery:未选择“选择字段”选项时隐藏元素(多个字段)

jQuery:未选择“选择字段”选项时隐藏元素(多个字段),jquery,drop-down-menu,show-hide,Jquery,Drop Down Menu,Show Hide,对于搜索表单,我只想在从四个可用选择中至少选择一个选项时显示“重置”按钮,并在重置所有选择字段后将其隐藏。 通过下面的jQuery,我一次解决了所有问题,这当然可以很好地显示按钮,但是当我在多个选择字段上选择了选项,例如选择了“颜色”和“大小”时,只要我清除两个选择选项中的一个,重置按钮就会消失 如何让jQuery确保所有选择都已重置,以隐藏重置元素 当前代码: jQuery('#my_searchform select').change(function() { if(jQuery(t

对于搜索表单,我只想在从四个可用选择中至少选择一个选项时显示“重置”按钮,并在重置所有选择字段后将其隐藏。 通过下面的jQuery,我一次解决了所有问题,这当然可以很好地显示按钮,但是当我在多个选择字段上选择了选项,例如选择了“颜色”和“大小”时,只要我清除两个选择选项中的一个,重置按钮就会消失

如何让jQuery确保所有选择都已重置,以隐藏重置元素

当前代码:

jQuery('#my_searchform select').change(function() {
    if(jQuery(this).val()) {
        jQuery('.reset').show();
    } else {
        jQuery('.reset').hide();
    }
});

这是你的解决方案

$'my\u searchform select'.changefunction{ var标志=假; $'select'。每个函数{ 如果$this.val!={ flag=true } }; 伊夫拉格{ $'.reset'.show; }否则{ $'.reset'.hide; } }; .重置{ 显示:无; } 选择一个选项 测试1 测试2 选择一个选项 测试3 测试4 选择一个选项 测试5 测试6 测试9
重置您还需要检查其他选择

jQuery('#my_searchform select').change(function() {
    if(!($("#select1").val()||$("#select2").val()||$("#select3").val()||$("#select4").val())){
        jQuery('.reset').hide();
    }else{
        jQuery('.reset').show();
    }});
选择1、选择2、选择3、选择4是选择ID。您还可以为它们分配一个公共类,并使用类检查这些选择以供决策。

您可以尝试此方法

$'my\u searchform select'.changefunction{ var=false; $'my\u searchform select'。每个函数{ 如果$this.val={ isAnySelected=true; } }; 如果选择了{ $'.reset'.show; }否则{ $'.reset'.hide; } }; $.reset.clickfunction{ $'my\u searchform select'。每个函数{ $this.val; }; $'.reset'.hide; }; 选择1 1. 选择2 1. 选择3 1.
我只是想看看是否有任何输入是用过滤器填写的

    jQuery('#my_searchform select').change(function() {
        if(jQuery(this).val()) {
            jQuery('.reset').show();
        } else {
            if(jQuery('#my_searchform select').filter(function(){return !this.value}).length === 0) {
jQuery('.reset').hide();
}
        }
        });

为了解决您的问题,即:如果任何选择都有选定的选项,则显示按钮;如果所有选择的选项都已手动重置,则仅隐藏按钮。您可以测试选定选项的数量,如以下代码段所示:

$“选择”。在“更改”上,函数E{ $'.reset'。切换$'选择选项[值!=]:已选择。长度>0; }; $按钮。重置。单击,函数E{ //重置操作时,重置并触发更改事件 $'select'.val.trigger'change'; }; .重置{ 显示:无; } 选择一种颜色: 红色 黄的 黑色 白色 选择一个尺寸: 1. 2. 3. 4. 重置 希望这有帮助-

$(document).ready(function() {
  var resetBtn = $("#resetBtn");
  resetBtn.hide();

  function validateSelects(){
    var isSelected = false;
    $.each($("select"),function()
    {
         if( $(this).val() !== ""){  isSelected=true; console.log(isSelected);}
    });
    return(isSelected);
  }

  // For the functionality.
  $("#myform select").on("change",function(){
    if(validateSelects()) {
      console.log("if " + validateSelects());
      resetBtn.show();
    }else {
      console.log("else " + validateSelects());

      resetBtn.hide();
    }
  });

});

我认为您应该检查每个select并将当前值.val与第一个选项进行比较。查找'option'。eq0值。如果它们相等,则重置为select。嘿@Shiladitya,不幸的是,否,select的id不是我的搜索表单,而是表单本身的id;。此外,它还涉及多个选择字段,并且需要在手动删除所有选择的选项后隐藏重置按钮。但是非常感谢你的帮助@酸浆。。。给我一些时间,我会更新答案的。。对不起,我误解了这个问题。不,这是另一种方式:如果任何选择都有一个选择选项,则显示按钮,只有在所有选择的选项都已手动重置时才隐藏。没有,但无论如何,谢谢,已经有了解决方案:。@physalis我为你感到高兴。在任何情况下,如果你有时间,你能看看更新的代码片段吗?这只是为了我个人的满足。非常感谢。@physalis非常感谢。非常感谢您和所有其他人如此迅速地提供帮助!哦,本以为这样就可以了,但当所有选项再次被禁用时,它仍然不会记录。这实际上是可行的。我想会有一个解决方案使命名单个ID变得多余,但到目前为止,这个方案效果最好!非常感谢。