javascript - 如何使选择下拉菜单响应输入框

标签 javascript jquery

我试图使选择下拉列表响应输入框 因此,当输入框中输入内容(可以是任何内容)时,选择将更改为关闭,如果输入框中没有输入任何内容,选择将打开。知道代码有什么问题吗?提前致谢

$('.input').change(function() {
        if ($(this).val() === '') {
          $('.msg').text('open');}
            else {
            $('.msg').text('closed');}
        
      })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
<tr> <td><input type="text" class="input"> </td>
 <td><select class="msg" name="status[]" style="border: none"  style="width: 5px" >
<option value="open"> open</option>
<option value="closed">closed</option>
   </select></td></tr>
   
   <tr> <td><input type="text" class="input"> </td>
 <td><select class="msg" name="status[]" style="border: none"  style="width: 5px" >
<option value="open"> open</option>
<option value="closed">closed</option>
   </select></td></tr>
   </table>

最佳答案

我建议三项改变:

  1. 将事件绑定(bind)更改为 $('.input').on("input",function() { - 它将确保下拉列表随着每次按键而不是按一次而改变模糊。这样用户在输入时就能够看到更改。

  2. $(".msg") 更改为 $(this).parents("tr").find('.msg')。前者选择 DOM 中所有具有 .msg 类的元素,而后者仅影响属于当前 tr.msg 元素。

  3. .text('open') 更改为 .val("open") - 这会设置 select 的值> 元素。

$('.input').on("input",function() {
  if ($(this).val() === '') {
    $(this).parents("tr").find('.msg').val('open');
  } else {
    $(this).parents("tr").find('.msg').val('closed');
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tr>
    <td><input type="text" class="input"> </td>
    <td><select class="msg" name="status[]" style="border: none" style="width: 5px">
<option value="open"> open</option>
<option value="closed">closed</option>
   </select></td>
  </tr>

  <tr>
    <td><input type="text" class="input"> </td>
    <td><select class="msg" name="status[]" style="border: none" style="width: 5px">
<option value="open"> open</option>
<option value="closed">closed</option>
   </select></td>
  </tr>
</table>

关于javascript - 如何使选择下拉菜单响应输入框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46784836/

相关文章:

javascript - 将 Vue.js 添加到 Rails 5.1 和 Mocha 中的单元测试不起作用

javascript - 使用 jquery 根据所选值禁用下拉选项

javascript - 在窗口调整大小时移动元素后事件处理程序不起作用

javascript - 如何使用 Javascript 在 iframe 中加载 Google map ?

javascript - 在 jQuery 插件中实现 $(this)

javascript - 使用 jQuery 的购物 list

javascript - 为什么我不能声明一个构造函数实例化一个对象然后访问原型(prototype)?

javascript - 在页面加载时打开模式

javascript - 悬停时不在屏幕上显示 id

javascript - 如何在 html 命令 <a href =""></a> 中使用动态变量,该变量应根据变量进行更改?