Пользовательские события.
Добрый день!
Не могу решить одну проблему:когда пользователь введет в текстовое поле,скажем,- "http",я хочу создать и обработать это событие-например изменить шрифт вводимого текста. Как можно такое организовать? Спасибо за внимание. |
eskimoblueday,
onkeyup -> RegExp -> CSS |
Я сейчас организовал с помощью setInterval,в качестве 1 параметра поставил проверку - if($(".something").val()=="http")...
Но наверное это не сильно правильно?И после несколько таких if-ов идет сильное нагромождение кода. Рони,можешь привести пример с регуляркой? |
eskimoblueday,
:cray: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> </head> <body> <input type="text" class="test"> <script src="http://code.jquery.com/jquery-1.9.1.js"></script> <script type="text/javascript"> $(".test").keyup(function( ){ var val = $(this).val() $(this).css({color:/http/.test(val)?'red':''}) }); </script> </body> </html> |
elelm.onkeypress = function () { setTimeout(function(){ //тут писать код проверки },0); } |
Я уж хз зачем топик стартеру пользовательские события, ну раз уж сильно хочет, то вот, пожалуйста, пользовательские события (не работает в 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> |
Часовой пояс GMT +3, время: 18:44. |