3
I need to disable a button until all form fields are correct.
Thanks in advance.
$('#btnSalvar').on('click', function (e) {
var button = $('#btnSalvar');
button.prop('disabled', true);
var valid = $("#MyForm").valid();
console.log(valid);
if (!valid) {
e.preventDefault();
button.prop('disabled', false);
} else {
$('#MyForm').submit();
}
});
button:disabled {
background: red;
}
.invalid {
background: red;
color: white;
}
.error {
color: red;
}
<script type="text/javascript" src="//code.jquery.com/jquery-2.1.0.js"></script>
<link rel="stylesheet" type="text/css" href="/css/result-light.css">
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js"></script>
<form id="MyForm" novalidate="novalidate">
<div>
<label for="name">Name:</label>
<input type="text" name="name" id="name" required="" data-required-message="Name is required." class="valid">
</div>
<div>
<label for="email">Email:</label>
<input type="email" name="email" id="email" required="" data-required-message="Email is required." data-type-message="You must provide a valid email address." class="valid"><label for="email" generated="true" class="error" style="display: none;">Please enter a valid email address.</label>
</div>
<div>
<button id="btnSalvar">Salvar</button>
</div>
</form>
Can you show HTML? How do you know the fields are correct? you are using HTML5 validation?
– Sergio
That code works here, but not on my machine
– marcelo victor
What a difference between this code and your actual code?
– Sergio