如果输入为空jquery,则禁用提交

Jon*_*han 9 javascript forms jquery submit

免责声明:我知道有很多关于这个主题的问题并且已得到高度解决,尽管在我的特定情况下我需要帮助.

我试图检查键盘上的输入值是否为空,然后禁用提交按钮.

我的HTML代码段:

<div class='form'>
  <form>
    <div class='field'>
      <label for="username">Username</label>
      <input id="username" type="text" />
    </div>
    <div class='field'>
      <label for="password">Password</label>
      <input id="password" type="password" />
    </div>
    <div class='actions'>
      <input type="submit" value="Login" />
    </div>
  </form>
</div>
Run Code Online (Sandbox Code Playgroud)

我从这里使用了示例答案并进行了一些修改:

(function() {
    $('.field input').keyup(function() {

        var empty = false;
        $('.field input').each(function() {
            if ($(this).val() == '') {
                empty = true;
            }
        });

        if (empty) {
            $('.actions input').attr('disabled', true);
        } else {
            $('.actions input').attr('disabled', false);
        }
    });
})()
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

Jam*_*ill 23

我建议默认禁用该按钮.我也会查看长度,而.val()不是检查空字符串.最后,我认为document.ready()比现有代码更具可读性:以下是完整代码:

HTML

<div class='form'>
  <form>
    <div class='field'>
      <label for="username">Username</label>
      <input id="username" type="text" />
    </div>
    <div class='field'>
      <label for="password">Password</label>
      <input id="password" type="password" />
    </div>
    <div class='actions'>
      <input type="submit" value="Login" disabled="disabled" />
    </div>
  </form>
</div>?
Run Code Online (Sandbox Code Playgroud)

JS/jQuery的

$(document).ready(function() {
  $('.field input').on('keyup', function() {
    let empty = false;

    $('.field input').each(function() {
      empty = $(this).val().length == 0;
    });

    if (empty)
      $('.actions input').attr('disabled', 'disabled');
    else
      $('.actions input').attr('disabled', false);
  });
});
Run Code Online (Sandbox Code Playgroud)

这是一个工作小提琴.