JSFiddle - React, Tailwind, and code Playground
HTML
<form action="#" method="POST" id="formName">
<select>
<option value="">-- selecione um valor --</option>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<input type="text" id="texto1" />
<input type="text" id="texto2" value="valor-prévio" />
<textarea id="Textarea1"></textarea>
<textarea id="Textarea2">valor-prévio</textarea>
<input type="checkbox" name="chk" value="check-is-true" />
<button id="botao">botão</button>
</form>
CSS
input, textarea, select {
display: block;
}
JavaScript
$(function () {
var $inputs = $("input, textarea, select", "#formName"),
$button = $("#botao");
var limpos = 0;
// verificação inicial
$inputs.each(function () {
var $this = $(this);
var val = $this.val();
val || limpos++;
$this.data("val-antigo", val);
});
$button.prop("disabled", !!limpos);
$inputs.on("change keyup mouseup", function () {
var $this = $(this);
var val = $this.val();
limpos += (val ? 0 : 1) - ($this.data("val-antigo") ? 0 : 1);
$this.data("val-antigo", val);
$button.prop("disabled", !!limpos);
});
});