/*
* Disable submit button until password entered.
*/
(function () {
var form = document.getElementById('loginform');
var password = document.getElementById('login-password');
var submit = document.getElementById('submit');
var submitted = false;
submit.disabled = true;
submit.className = 'btn btn-primary';
addEvent(password, 'input', function (e) {
var target = e.target || e.srcElement;
submit.disabled = submitted || !target.value;
submit.className = (!target.value || submitted) ? 'btn btn-primary' : 'btn btn-success';
});
}());
// Helper function to add an event listener
function addEvent(el, event, callback) {
if ('addEventListener' in el) { // If addEventListener works
el.addEventListener(event, callback, false); // Use it
} else { // Otherwise
el['e' + event + callback] = callback; // CreateIE fallback
el[event + callback] = function () {
el['e' + event + callback](window.event);
};
el.attachEvent('on' + event, el[event + callback]);
}
}
// Helper function to remove an event listener
function removeEvent(el, event, callback) {
if ('removeEventListener' in el) { // If removeEventListener works
el.removeEventListener(event, callback, false); // Use it
} else { // Otherwise
el.detachEvent('on' + event, el[event + callback]); // Create IE fallback
el[event + callback] = null;
el['e' + event + callback] = null;
}
}
<div class="container">
<form id="loginform" class="form-horizontal" role="form" name="form1" method="post">
<input id="login-username" type="text" class="form-control" name="login" placeholder="username">
<label for="login-password"></label>
<input id="login-password" type="password" class="form-control" name="password" placeholder="password">
<input type="submit" value="Login" id="submit" name="Submit" class="btn btn-success" />
</form>
</div>
<style> #submit.disabled:hover {
background-color: #999;
text-shadow: none;
box-shadow: none;
cursor: not-allowed;
}
</style>
External resources loaded into this fiddle: