Пользовательские события.
Добрый день!
Не могу решить одну проблему:когда пользователь введет в текстовое поле,скажем,- "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, время: 23:49. |