Registration form validation in jQuery
Here is my take, dry some stuff.

You can glue each piece of code together to have a working script (I guess).



Keep track of your validations

var flags = {
    username: 1,
    password: 1,
    email: 1
};


jQuery seems to be included, so let's use it.
The code of the reg_username and reg_email seems to be similair, so let's DRY it into a function named validates

$('#reg_username').on('input', function () {
    validates('username', $(this).val());
});


$('#reg_email').on('input', function () {
    validates('email', $(this).val());
});


The code of reg_password can be shorten a little.

$('#reg_password').on('input', function () {
    flags.password = !isBlank($(this).val())
    handleButton();
});


Here is the validates function

function validates (type, value) {
    if (!isBlank(value)) {
        remoteCheck(type, value).done(remoteCallback);
    } else {
        flags[type] = 1;
        hideFeedback(type);
        handleButton();
    }
}


You can dryify emailCheck and usernameCheck in a single function named remoteCheck by passing email or username in arguments.

function remoteCheck (type, value) {
    return $.ajax({
        type: 'POST',
        url: 'check_availability.php',
        data: type + '=' + value
    });
}


And here is the dryed callback for remoteCheck

function remoteCallback (type, value) {
    flags[type] = parseInt(response);
    handleFeedback(type, flags[type])
    handleButton();
}


The feedback can also be handled with a single function

function handleFeedback (type, flag) {
    hideFeedback(type);

    if (flag) {
        $('#cross_' + type).fadeIn();
    } else {
        $('#tick_' + type).fadeIn();
    }
}


function hideFeedback (type) {
    $('#tick_' + type).hide();
    $('#cross_' + type).hide();
}


To improve readability we put the flags checker in a separated function (and it now can be used elsewhere)

function handleButton () {
    $('#register_btn').prop('disabled', !isValid());
}


function isValid() {
    return flags.username === 0 &amp;&amp; flags.email === 0 &amp;&amp; flags.password === 0
}


You can create an utility function to check if a string is empty or null which is used many times in this script. 

function isBlank (string) {
    return string === null || string === ''
}