JSFiddle - React, Tailwind, and code Playground

by gravof

HTML

<script src="http://www.modernizr.com/downloads/modernizr-latest.js"></script>

JavaScript

document.body.innerHTML = iv();

function iv() {
    // Assuption No.1
    if (!Modernizr.input.required) {
        return false;
    }

    var form = document.createElement('form');

    // Prevent form from being submitted
    var submitFired = false;
    form.onsubmit = function(e) {
        e.preventDefault();
    }

    // Calling form.submit() doesn't trigger interactive validation, 
    // use a submit button instead
    form.innerHTML = '<input required><button></button>';

    // FF4 doesn't trigger invalid event on inputs
    // if form is not in the DOM tree
    form.style.display = 'none';
    document.body.appendChild(form);

    var input = form.getElementsByTagName('input')[0];    

    // Record whether "invalid" event is fired
    var invaildFired = false;
    input.oninvalid = function() {
        invaildFired = true;
    };

    // Submit form by clicking submit button
    var button = form.getElementsByTagName('button')[0];
    button.click();

    // Don't forget to remove form from the DOM tree
    document.body.removeChild(form);

    return invaildFired;
}