当Select字段和Input字段都有值时,启用Disabled Submit Button?

问题描述 投票:0回答:2

我喜欢这个网站,并且能够从你们这里学到很多东西。但是,这是一个我无法找到答案的问题:

我有一个迷你表单,其中包含一个Select下拉列表和一个输入字段(两者都需要)和一个禁用的提交按钮。我的客户端需要禁用/显示提交按钮,直到这两个字段都填满,但我无法使操作起作用。

到目前为止,我提供的代码仅适用于输入。我试图在初始函数中加入“($('#selectBox')。on('change',function(){”来向Select字段发出信号,但它会破坏所有内容,我不知道该去哪里它。

我认为每个字段都需要在JQuery代码中相互反弹/读取,以破译每个字段都有一个有效值,而不是让字段独立工作(我似乎一直在做)。但是我很难找到连接(我还是JS / JQ的新手 - 请原谅我的无知,考虑到这个假设,如果错的话)。

我到处寻找解决方案,但我找不到答案。如果我错过了可以帮助我的链接或上一个问题,请告诉我,并感谢您的任何见解!

https://jsfiddle.net/jdraeger/2w68qs0y/2/

$(function() {
      $('#searchInput').keyup(function() {
      if ($(this).val() == '') {
          $('.enableOnInput').prop('disabled', true);
    } else {
          $('.enableOnInput').prop('disabled', false);
        }
      });
   })
<body>
  <div id='frame'>
    <div class='search'>
      <form method='post'>
        <select id="selectBox" class="selectBox" required>
          <option value="">--Select--</option>
          <option value="Yes">Yes</option>
          <option value="No">No</option>
        </select>
        <input type='text' name='searchQuery' id='searchInput' required/>
        <input type='submit' name='submit' id='submitBtn' class='enableOnInput' disabled='disabled' />
      </form>
    </div>
  </div>
</body>
jquery form-submit disabled-control submit-button
2个回答
0
投票

两个领域和两个活动......

你可以为此编写一个“处理程序”。只需使用.on()方法,它允许绑定许多事件(keyupchange)。然后,在比较中,检查两个值。如果其中一个为空,请禁用该按钮。

$(function() {
  $('#searchInput, #selectBox').on('keyup change',function() {
    if ($('#searchInput').val() == '' || $('#selectBox').val() == '') {
      $('.enableOnInput').prop('disabled', true);
    } else {
      $('.enableOnInput').prop('disabled', false);
    }
  });
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body>
  <div id='frame'>
    <div class='search'>
      <form method='post'>
        <select id="selectBox" class="selectBox" required>
          <option value="">--Select--</option>
          <option value="Yes">Yes</option>
          <option value="No">No</option>
        </select>
        <input type='text' name='searchQuery' id='searchInput' required/>
        <input type='submit' name='submit' id='submitBtn' class='enableOnInput' disabled='disabled' />
      </form>
    </div>
  </div>
</body>

通过将条件直接放在.prop()的true / false第二个参数中,这甚至可以写得更短:

$(function() {
  $('#searchInput, #selectBox').on('keyup change',function() {
    $('.enableOnInput').prop('disabled', ($('#searchInput').val() == '' || $('#selectBox').val() == ''));
  });
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<body>
  <div id='frame'>
    <div class='search'>
      <form method='post'>
        <select id="selectBox" class="selectBox" required>
          <option value="">--Select--</option>
          <option value="Yes">Yes</option>
          <option value="No">No</option>
        </select>
        <input type='text' name='searchQuery' id='searchInput' required/>
        <input type='submit' name='submit' id='submitBtn' class='enableOnInput' disabled='disabled' />
      </form>
    </div>
  </div>
</body>

0
投票

您可以通过创建一个新功能来启用您的提交按钮,并在文本输入字段更改或选择字段更改时调用

$('#selectBox','#searchInput').on('change', function() {
 enablingFunction();
 });

function enablingFunction(){
  if($('#selectBox').val() != "" && $('#searchInput').val() != ""){
    $('#submitBtn').prop("disabled", false);
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.