如果表格中的所有记录的文本框都为空,则禁用按钮

时间:2018-03-13 15:44:53

标签: jquery

我有一个表格,其中有2个文本框和一个按钮,如果任何文本框为空,我想禁用该按钮。

我使用了以下jquery来执行此操作 -

if ('serviceWorker' in navigator) {
  window.addEventListener('load', function() {
    navigator.serviceWorker.register('https://www.otherdomain.com/sw.js').then(function(registration) {
      // Registration was successful
      console.log('ServiceWorker registration successful with scope: ', registration.scope);
    }, function(err) {
      // registration failed :(
      console.log('ServiceWorker registration failed: ', err);
    });
  });
}`

但我遇到的问题是,这只适用于表格的第一条记录,而不适用于所有记录。

那么,我应该怎样做才能为表格的所有记录做这件事呢?

1 个答案:

答案 0 :(得分:1)

您需要使用类而不是ID。

$(document).ready(function () {

    $('.textarea').keyup(function () {
      var tableRow = $(this).closest("tr")
      var disable = !!tableRow.find(".textarea").toArray().find((textarea) => { return textarea.value.length === 0});
      tableRow.find('.btnSend').first().attr('disabled', disable);
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td><input type="button" class="btnSend" value="Send" disabled/></td>
    <td><textarea class="textarea"></textarea></td>
    <td><textarea class="textarea"></textarea></td>
   </tr>
   <tr>
    <td><input type="button" class="btnSend" value="Send" disabled/></td>
    <td><textarea class="textarea"></textarea></td>
    <td><textarea class="textarea"></textarea></td>
   </tr>
 </table>