Показать сообщение отдельно
  #6 (permalink)  
Старый 04.07.2013, 10:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Я уж хз зачем топик стартеру пользовательские события, ну раз уж сильно хочет, то вот, пожалуйста, пользовательские события (не работает в 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>
Ответить с цитированием