Desabilitar / habilitar botão Enviar até que todos os formulários tenham sido preenchidos

Quero que meu botão de envio de formulário seja desativado / ativado, dependendo se o formulário estiver totalmente preenchido.

Quando as entradas são preenchidas, o botão desativado é alterado para ativado. Isso funciona muito bem. Mas eu gostaria que desabilitasse o botão quando uma entrada fosse desabilitada.

Este é o meu script:

<script type="text/javascript" language="javascript">
    function checkform()
    {
        var f = document.forms["theform"].elements;
        var cansubmit = true;

        for (var i = 0; i < f.length; i++) {
            if (f[i].value.length == 0) cansubmit = false;
        }

        if (cansubmit) {
            document.getElementById('submitbutton').disabled = false;
        }
    }
</script> 
<form name="theform">
<input type="text" onKeyup="checkform()" />
<input type="text" onKeyup="checkform()" />
<input id="submitbutton" type="submit" disabled="disabled" value="Submit" />
</form>

questionAnswers(7)

yourAnswerToTheQuestion