2012-03-12 45 views
5

免責聲明:我知道這個主題有很多問題,並且已經得到很好的解決,儘管我需要在我的特定情況下提供幫助。禁用提交如果輸入爲空jquery

我想檢查輸入值是否爲空,然後禁用提交按鈕。

我的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> 

我曾與一些修改使用的示例答案從here

(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); 
     } 
    }); 
})() 

任何幫助將不勝感激!

+1

這只是回答另一個問題。見:http://stackoverflow.com/questions/9671323/jquery-disable-multiple-dropdowns-not-working/9671361#9671361 – 2012-03-12 17:34:25

+0

似乎在這裏工作很好:http://jsfiddle.net/yUQeq/ – jasonlfunk 2012-03-12 17:39:05

+0

你'對了,它正在工作 - 我有更大的問題:( – Jonathan 2012-03-12 17:50:18

回答

15

我建議默認禁用該按鈕。我也會看看.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>​ 

JS/jQuery的

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

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

     if (empty) { 
      $('.actions input').attr('disabled', 'disabled'); 
     } else { 
      $('.actions input').removeAttr('disabled'); 
     } 
    }); 
}); 

這裏的a working fiddle

0

我在我的項目中使用它,它成功。

$(document).ready(function() { 
    $('.field').keyup(function() { 

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

    if (empty) { 
     $('.actions[type="submit"]').attr('disabled', 'disabled'); 
    } else { 
     $('.actions[type="submit"]').removeAttr('disabled'); 
    }     
    }); 
}); 
相關問題