ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (7): « 1 2 3 4 5 [6] 7 »   

> Без описания
yura3d
Отправлено: 3 февраля 2010 — 16:36
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




altjo
Александр Михалицын
Спасибо, вроде бы разобрался Подмигивание

Ещё вопрос, может кто знает, возможно ли (и если возможно, то как) получить объект, который на данный момент в фокусе на странице?
 
 
altjo
Отправлено: 4 февраля 2010 — 12:27
Post Id


Пользователь
ExBB Skins Creator


Покинул форум
Сообщений всего: 277
Дата рег-ции: Февр. 2009  
Репутация: 86




Возможно как-то так

CODE:
<html>
<body onLoad="myButton.focus();">
<input type="Button" id="myButton" value="Element 1" onClick="function1();">
<input type="text" id="myTxt" value="Element 2" onClick="function1();">
<script language="JavaScript">
function function1() {
var m = document.activeElement.value;
alert('The active element is '+m);
}
</script>
</body>
</html>
 
 
yura3d
Отправлено: 11 февраля 2010 — 22:33
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




altjo
Спасибо огромное за полезные ссылки. В обоих случаях информация пригодилась, и я быстро смог решить возникшие проблемы Улыбка
 
 
yura3d
Отправлено: 12 июля 2010 — 10:19
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




Надо бы оживить темку Улыбка
Столкнулся с проблемой. Имеется функция-обработчик события onKeyDown. Задача состоит в том, что при нажатии клавиши Enter не должны вызваться родительские обработчики (проще говоря, нужно перехватить нажатие Enter'а и убить его, чтобы переход на новую строку не был вставлен в текстовое поле). Для IE6 проблема с запретом их вызова решилась просто:
CODE:
event.returnValue = false;

А вот с Оперой 9/10 разобраться не могу. Гугл выдаёт много информации по методам preventDefault(), stopPropagation() и т.п. Но у меня оно работать не хочет Огорчение
 
 
Александр Михалицын
Отправлено: 12 июля 2010 — 11:36
Post Id


Администратор
Super Member


Покинул форум
Сообщений всего: 723
Дата рег-ции: Февр. 2009  
Репутация: 42




yura3d,
блин. -) А почему бы мне напрямую в асю не скинуть? Хорошо, что я зашел. -)
Правильно тебе гугл выдает. А что именно у тебя "не работает"?

Событие как ставишь? attachEvent/addEventListener?
CODE:
e.stopPropagation();//предотвращает всплытие
e.preventDefault();//предотвращает выполнение следствия события (переноса строки)
e.returnValue = false;
 
 
yura3d
Отправлено: 12 июля 2010 — 13:11
Post Id


Пользователь
ExBB Team
ExBB Developer
ExBB Mods Author


Покинул форум
Сообщений всего: 3394
Дата рег-ции: Февр. 2009  
Откуда: Минск, Беларусь
Репутация: 353




Александр Михалицын пишет:
Событие как ставишь? attachEvent/addEventListener?

По правде говоря, у меня реализовано несколько проще. Если немного углубиться в подробности, то есть некоторый span, который доступен для редактирования пользователями (атрибут contentEditable):
CODE:
<span contentEditable="true" onKeyDown="mykeydown(event);">Тут текст</span>

Далее следует фунция-обработчик:
CODE:
function mykeydown(event) {
if (!event) event = window.event;
if (event.keyCode == 13)
event.returnValue = false;
}

Этот способ работает в IE (по крайней мере в 6-ой его версии)

Проблема в том, что при редактировании текста в span'е в случае нажатия Enter, происходит полная ерунда. IE6 начинает заключать строки в теги <p></p>, в результате чего осуществляется переход не на одну, а на две строки (мне же нужен <br>). В Опере 9 span'ы почему-то начинают размножаться с каждым нажатием Enter. В Опере 10 похожая ситуация

Задача в том, чтобы перехватывать нажатие Enter и не позволять исполняться родительским обработчикам, которые творят эту ерунду. Достаточно будет лишь в дочернем обработчике добавить <br> в span (например, посредством innerHTML)

Сейчас ещё подумал. Ведь текст может быть вставлен и из буфера обмена, и при этом в нём могут быть переходы на новую строку. Видимо, весь алгоритм нужно свести к такой последовательности: сначала получаем обновлённый текст, выполняем необходимые преобразования, а затем отправляем его стандартным обработчикам
 
 
shyuser
Отправлено: 16 марта 2011 — 09:27
Post Id


Пользователь
Member


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июль 2009  
Откуда: Лукоянов, Нижегородская область, Россия
Репутация: 16




vipraskrutka, возможно так:
CODE:
<html>
<head>
<title>Простая страница</title>
<script language="JavaScript">
<!-- Маскируемся!
function calcArea()
{
$n = prompt (" Введите число" , " Введите число") ;
$m=$n/100;
if ($m<1)
{
$m=1;
}
else
{
if ($m>100)
{
$m=100;
};
};
$m=Math.round($m)+Math.round($n);
alert($m);
}
// Снимаем маскировку. -->
</script>
</head>
<body>
Щелкните <input type="button" value="ЗДЕСЬ" onClick="calcArea()"> чтобы вычислить!
</body>
</html>

(Отредактировано автором: 16 марта 2011 — 09:35)

 
 
bruno
Отправлено: 24 мая 2011 — 03:00
Post Id



Пользователь
Junior Member


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  
Репутация: 1




Есть такой скрипт:
CODE:
<script type="text/javascript">
function proverka(input) {
var value = input.value;
var rep = /[-\.;":'a-zA-Zа-яА-Я]/;
if (rep.test(value)) {
value = value.replace(rep, '');
input.value = value;
}
}
</script>
<input type="text" onkeyup="return proverka(this);" />

Он запрещает печатать в поле ввода любые символы кроме цифр. Работает отлично.
Но есть большая проблема.
Она заключается в том, что при вставки из буфера в это поле удаляется только один запрещённый символ, а надо чтобы удалялись все символы.
Что нужно сделать, помогите?
 
 
shyuser
Отправлено: 24 мая 2011 — 09:04
Post Id


Пользователь
Member


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июль 2009  
Откуда: Лукоянов, Нижегородская область, Россия
Репутация: 16




bruno, при вставке из буфера вводится более чем один символ - нужно поместить условие в цикл для проверки всех введенных символов в блоке.

(Отредактировано автором: 24 мая 2011 — 09:05)

 
 
bruno
Отправлено: 24 мая 2011 — 09:35
Post Id



Пользователь
Junior Member


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  
Репутация: 1




shyuser
Буду очень благодарен за пример.
Чесно говоря дуб дубом в этом деле.
 
 
shyuser
Отправлено: 24 мая 2011 — 15:56
Post Id


Пользователь
Member


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июль 2009  
Откуда: Лукоянов, Нижегородская область, Россия
Репутация: 16




bruno, в javascript, да и вообще в web-программировании, я тоже слабоват Улыбка
Не претендую на оптимальность и правильность, но что-то такое:
CODE:
<script type="text/javascript">
function proverka(input) {
var value = input.value;
var rep = /[-\.;":'a-zA-Zа-яА-Я]/;
for (var i=0; i<=input.value.length; i++) {
value = value.replace(rep, '');
}
input.value = value;
}
</script>
<input type="text" onkeyup="return proverka(this);">

P.S. Думаю, что в rep невозможно все символы запретные указать, и здесь скорее нужно отталкиваться от того какие можно и те, что не подходят, удалять.
(Добавление)
Вероятно, так проще, добавил опцию глобального поиска:
CODE:
<script type="text/javascript">
function proverka(input) {
var value = input.value;
var rep = /[-\.;":'a-zA-Zа-яА-Я]/g;
input.value = value.replace(rep, '');
}
</script>
<input type="text" onkeyup="return proverka(this);">
 
 
bruno
Отправлено: 24 мая 2011 — 21:53
Post Id



Пользователь
Junior Member


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  
Репутация: 1




shyuser спасибо!
Впринципе всё ок. Но только при вставке из буфера путём нажатия на правую кнопки мышки - всё равно вставляется. Но если вставлять через клавиши Shift+Insert то не вставляется, удаляется.
Я добавил запрет на работу правой кнопки мышки.
Впринципе задача решена. Спасибо.
 
 
shyuser
Отправлено: 25 мая 2011 — 04:04
Post Id


Пользователь
Member


Покинул форум
Сообщений всего: 111
Дата рег-ции: Июль 2009  
Откуда: Лукоянов, Нижегородская область, Россия
Репутация: 16




bruno, можно попробовать добавить ещё события:
CODE:
<input type="text" onkeyup="return proverka(this);" onChange="return proverka(this);" onClick="return proverka(this);">
 
 
bruno
Отправлено: 25 мая 2011 — 05:01
Post Id



Пользователь
Junior Member


Покинул форум
Сообщений всего: 85
Дата рег-ции: Авг. 2009  
Репутация: 1




shyuser
ДА, теперь суппер!
 
 
archi-mobile
Отправлено: 2 декабря 2011 — 15:33
Post Id



Пользователь
Full Member


Покинул форум
Сообщений всего: 174
Дата рег-ции: Сент. 2011  
Репутация: 12




Помогите сделать скрипт рабочим.
При регистрации "согласен" не переходит в register.php?{$sesid}
CODE:
<div align=center>
<form name=agree>
<input onclick=ok(); type=button value="Прочтение условий не менее 2-ти секунд!" name=agreeb>&nbsp;&nbsp;
<input onclick="self.location.href='index.php'" type=button value="Не согласен">
</form>
<script>
function ok()
{
var str = 'register.php?{$sesid}';
window.location=str.replace(/&amp;/g, '&');
}
var secs = 2;
document.agree.agreeb.disabled=true;

for(i=1;i<=secs;i++)
{
window.setTimeout("update(" + i + ")", i * 1000);
}

function update(num) {
if(num == secs) {
document.agree.agreeb.value ="Согласен";
document.agree.agreeb.disabled=false;
}
else {
printnr = secs-num;
document.agree.agreeb.value = "Пожалуйста, внимательно прочитайте условия, осталось " + printnr +" сек ";
}
}
</script>
</div>
 
 
Страниц (7): « 1 2 3 4 5 [6] 7 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« JavaScript »

> Похожие темы: Вопросы по JavaScript
Темы Форум Информация о теме Обновление
Ссылки в темах
Вопросы по поводу ссылок в темах
Общие вопросы Ответов: 2
Автор темы: Konstantin
2 марта 2012 — 11:50
Автор: Konstantin
FAQ
FAQ по JavaScript
JavaScript Ответов: 0
Автор темы: Александр Михалицын
22 февраля 2009 — 11:51
Автор: Александр Михалицын
Статья: "ООП в JavaScript"
JavaScript Ответов: 0
Автор темы: Александр Михалицын
6 апреля 2009 — 08:19
Автор: Александр Михалицын
Прокрутка скринов на JavaScript
Нужно изменить направление... как?
JavaScript Ответов: 2
Автор темы: Axel
13 апреля 2009 — 19:52
Автор: Axel
Вопросы по удалению пользователей
Общие вопросы Ответов: 3
Автор темы: roma1
2 декабря 2012 — 17:25
Автор: electron
 



Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0662]     [ ]