简体   繁体   English

输入字段填充时清除下拉列表

[英]clear drop down when input field fill

I want to clear my drop down and lock it when I select Input field.当我选择输入字段时,我想清除我的下拉菜单并锁定它。 Here is my code这是我的代码

       <input type="text" class="form-control member-search" placeholder="Search by name" id="member">
       <input type="hidden" name="assigned_to" value="" id="assigned_to">


            <select class="form-control" name="assigned_to" id="drop-down">
            <option value="">Choose team member...</option>
              <% if @m.size >= 1 and !@m.include?("data") %>
                <% @m.each do |l| %>          
                    <% if l["account_user_id"] == session[:user_id] %> 
                      <option value="<%= l["id"] %>" selected><%= l["first"] %> <%= l["last"] %></option>
                    <% else %> 
                      <option value="<%= l["id"] %>"><%= l["first"] %> <%= l["last"] %></option>
                    <% end %>
                <% end %>
              <% end %>
            </select>

Here is my jquery code这是我的 jquery 代码

    <script>
     $('#drop-down').change(function(){
     $('#member').val('');
    });

     $('#member').change(function(){
     $('#drop-down').prop('disabled', true);
     $('#drop-down').val(''); 
    }); 
   </script>

with this code these two scenarios happen.使用此代码,会发生这两种情况。

1) When I select input field first and fill it, drop down list become lock. 1)当我首先选择输入字段并填充它时,下拉列表变为锁定。 (This is ok) (还行吧)

2) When I select drop down first and then try to fill input field. 2)当我先选择下拉菜单然后尝试填充输入字段时。 In this scenario i can fill input field.在这种情况下,我可以填写输入字段。 then drop down become locked.然后下拉被锁定。 But I have to tap on screen to clear the drop down.但我必须点击屏幕才能清除下拉菜单。 i want to clear it when I fill the input field without any action.我想在填写输入字段时清除它而没有任何操作。

I want to disable drop down instead of clear because of below reason.由于以下原因,我想禁用下拉而不是清除。 In here I want to save selected value of drop down to the assigned_to在这里,我想将下拉选择的值保存到assigned_to

as well as when user fill the input field it also saved in assigned_to variable in hidden input field.以及当用户填写输入字段时,它还保存在隐藏输入字段中的assigned_to变量中。

It is require to fill only one field.只需要填写一个字段。 If user fill the input field and do not disable drop down assigned_to variable replace with empty value.如果用户填写输入字段并且不禁用下拉assign_to变量替换为空值。 That's why I want to disable it.这就是为什么我想禁用它。

You can start with something like this:你可以从这样的事情开始:

 $('#members').on('change', function() { $('#dropdownitems').prop("disabled", true); }); $('#dropdownitems').on('change', function() { $('#members').prop("disabled", false); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <select id="dropdownitems" name="subjectitems"> <option value="0">--Select--</option> <option value="1">Something</option> <option value="2">Other</option> </select> <input type="text" name="Members" id="members" placeholder="Enter text" />

let me know.让我知道。

This is my version based on your requirements, hope its relevant, please note: that I have removed the hidden attribute for checking if it gets populated, you may need to add that!这是我根据您的要求编写的版本,希望它相关,请注意:我已经删除了隐藏属性以检查它是否被填充,您可能需要添加它!

 // set initial $('#assigned_to').val($('#drop-down').val()); $('#drop-down').change(function() { console.log('change', $(this).val()); $('#member').val(''); $('#assigned_to').val($(this).val()); }); $('#member').keyup(function() { console.log(); $('#drop-down').prop('disabled', $(this).val()); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <input type="text" class="form-control member-search" placeholder="Search by name" id="member"> <input name="assigned_to" value="" id="assigned_to"> <!-- <select class="form-control" name="assigned_to" id="drop-down"> <option value="">Choose team member...</option> <% if @m.size >= 1 and !@m.include?("data") %> <% @m.each do |l| %> <% if l["account_user_id"] == session[:user_id] %> <option value="<%= l["id"] %>" selected><%= l["first"] %> <%= l["last"] %></option> <% else %> <option value="<%= l["id"] %>"><%= l["first"] %> <%= l["last"] %></option> <% end %> <% end %> <% end %> </select> --> <select name="assigned_to" id="drop-down"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="mercedes">Mercedes</option> <option value="audi">Audi</option> </select>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM