JSFiddle - React, Tailwind, and code Playground

by Cameron Bernhardt

HTML

<form action="" method="post" id="subnewtopicform" />Title:
<input type="text" name="title">
<br/>Description:
<textarea name="description"></textarea>
<br/>Category:
<ul class="list:category categorychecklist form-no-clear" id="categorychecklist">
    <li id="category-19">
        <label class="selectit">
            <input type="radio" id="in-category-19" name="category" value="19">Animation</label>
    </li>
    <li id="category-20">
        <label class="selectit">
            <input type="radio" id="in-category-20" name="category" value="20">Anime</label>
    </li>
</ul>
<input type="submit" value="Submit Topic" class="button-primary" name="subnewtopic" id="subnewtopic" disabled="disabled" />
</form>

JavaScript

function check() {
    var inputs = document.getElementsByTagName("input");
    var textareas = document.getElementsByTagName("textarea");
    var filled = true;
    var oneChecked = false;
    
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type === "text" && !inputs[i].value) {
            filled = false;
        }
        
        if (inputs[i].type === "radio" && inputs[i].checked) {
            oneChecked = true;
        }

    }

    if (!oneChecked) {
        filled = false;
    }

    for (var j = 0; j < textareas.length; j++) {
        if (!textareas[j].value) {
            filled = false;
        }
    }
    
    if (filled) {
        document.getElementById("subnewtopic").disabled = false;
    } else {
        document.getElementById("subnewtopic").disabled = true;
    }
}

window.addEventListener("keyup", check);
window.addEventListener("click", check);