Я уж хз зачем топик стартеру пользовательские события, ну раз уж сильно хочет, то вот, пожалуйста, пользовательские события (не работает в IE8-9):
<!DOCTYPE html>
<input type="text" id="input" />
<script>
(function(){
var input = document.getElementById('input');
var pattern = /http/;
var lastMatch = false;
input.addEventListener('input', function() {
var match = pattern.test(this.value);
if (match !== lastMatch) {
var event = new CustomEvent(
"patternmatch",
{
detail: match,
bubbles: false,
cancelable: false
}
);
this.dispatchEvent(event);
}
lastMatch = match;
});
})()
</script>
<script>
(function(){
var input = document.getElementById('input');
input.addEventListener('patternmatch', function(e){
var matches = e.detail;
alert('patternmatch event! Matches? ' + matches);
this.style.color = matches ? 'red' : 'black';
});
})()
</script>