检查空字段和禁用按钮

时间:2015-12-23 09:15:17

标签: jquery

我正在检查三个文本字段,如果为空,则提交按钮不应该是可点击的。如果所有三个文本字段都不为空,那么(如您猜测的那样)提交按钮将是可点击的。

//nameText, emailText, commentsText = text fields
//If fields are non-empty, disabled status = false
$(nameText, emailText, commentsText).each(function() {
    if ($(this).val() != "") {
        $('#submitButton').prop('disabled', false);
    }
});

//If fields are empty, disabled status = true
$(nameText, emailText, commentsText).each(function() {
    if ($(this).val() == "") {
        $('#submitButton').prop('disabled', true);
    }
});

这并不完全正常。该按钮一直处于禁用状态,即使填写了字段也无法启用。有人可以指出我做错了什么吗?谢谢。

3 个答案:

答案 0 :(得分:0)

你错过了一个括号:

if $(this).val() == "") {

应为:

if ($(this).val() == "") {

这适用于您的两种情况。

我还使用了一个标志,这样你只需要使用一个循环:

var isValid = true;

$(nameText, emailText, commentsText).each(function() {
    if ($(this).val() == "")
        isValid = false;
});

$('#submitButton').prop('disabled', !isValid);

答案 1 :(得分:0)

您可以使用以下方式检查:

$('#submitButton').prop('disabled', function(){
    return !!$(nameText).add(emailText).add(commentsText).filter(function(){
       return !this.value.trim(); 
    }).length
});

答案 2 :(得分:0)

您可以查看此代码段。



$(document).ready(function(){
  
  
 
  checkFormValidity();
  
  $("#name,#email,#comment ").keyup(function(){
    checkFormValidity();
  });
  
  
  function checkFormValidity(){
    var allFilled = true;
    $("#name,#email,#comment").each(function() {
      if ($(this).val() == "") {
          allFilled = false;
      }
    });
    
    $('#submitButton').prop('disabled', (!allFilled));
      
  }
  
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
 <form >
  <fieldset>
    <legend>Personal information:</legend>
    Name:<br>
    <input type="text" id="name" name="Name" value="">
    <br>
    Email:<br>
    <input type="text" id="email" name="email" value="">
     <br>
    Comments:<br>
    <input type="text" id="comment" name="comment" value="">
    <br><br>
    <input type="submit" id="submitButton" value="Submit">
  </fieldset>
</form>
&#13;
&#13;
&#13;