Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / onblur() и focus() / 20 сообщений из 20, страница 1 из 1
12.03.2010, 14:03:46
    #36516727
vasos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
Доброе время суток.
Смотрел поиском, нашел тему, но ответа там нету, подниму еще раз, как вернуть фокус элементу на который повешено событие на onblur именно в ff?
пример из "жизни":
Код: plaintext
1.
2.
<input type="text" onchange="check_prob(this,false);" onkeyup="check_prob(this,false);" onblur=" chk_minmaxlen(this,'3,5');" onkeypress="return  chk_len_str(20);" style="max-width: 400px;" maxlength="20" size="20" id="rname" name="rname" title="0" " class="fcs"/>

и скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
function chk_minmaxlen(element, minmax)
{
var a1=minmax.split(",");
var min=a1[ 0 ];
var max=a1[ 1 ];
if (element.value.length > max)
	{
	alert("Вы ввели слишком много символов. Должно быть не больше "+ max);
	element.focus();
	}

if (element.value.length < min)
	{
	alert("Вы ввели мало символов. Должно быть не менее "+ min);
	element.focus();
	return;
	}
}
думаю приблизительно ясно что делает скрипт и вопросов навроде "а зачем это делать?" не возникнет, просто прошу поделиться опытом, может кто-то решил таки эту задачку...
Заранее Благодарен.
...
Рейтинг: 0 / 0
12.03.2010, 14:20:47
    #36516784
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
Код: plaintext
1.
2.
<input type="text" onblur=" chk_minmaxlen(this,'3,5'); this.focus();"  class="fcs"/>

так, нет?
...
Рейтинг: 0 / 0
12.03.2010, 14:22:07
    #36516789
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
нет, не так))
...
Рейтинг: 0 / 0
12.03.2010, 14:22:47
    #36516792
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
EmilRegis,

А как из инпута выйти?
...
Рейтинг: 0 / 0
12.03.2010, 14:26:08
    #36516805
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
ShSergeEmilRegis,

А как из инпута выйти?
что значит выйти? если сделать как я написал, то курсор обратно не встаёт, но при нажатии на tab переходит к следующему после этого элементу
...
Рейтинг: 0 / 0
12.03.2010, 14:34:45
    #36516829
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
EmilRegisShSergeEmilRegis,

А как из инпута выйти?
что значит выйти? если сделать как я написал, то курсор обратно не встаёт, но при нажатии на tab переходит к следующему после этого элементу
Да ну?
Код: plaintext
1.
2.
3.
4.
5.
6.
<html>
<body>
<input type="text" onblur="this.focus()" />
<input type="text" />
</body>
</html>
Попробуйте выйти из первого инпута.
...
Рейтинг: 0 / 0
12.03.2010, 14:39:48
    #36516845
vasos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
вот и я не вижу пока что решения...сегодня уже полдня угрохал....
...
Рейтинг: 0 / 0
12.03.2010, 14:40:11
    #36516848
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
попробовал)
курсор действительно не встаёт на первый инпут, но при нажатии на tab встаёт на второй...
...
Рейтинг: 0 / 0
12.03.2010, 14:44:20
    #36516859
vasos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
EmilRegisпопробовал)
курсор действительно не встаёт на первый инпут, но при нажатии на tab встаёт на второй...
у меня вообще, что есть там онблур, что нету, работает одинаково....то биш никак не реагирует
...
Рейтинг: 0 / 0
12.03.2010, 14:49:33
    #36516875
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
так попробуй
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<html>
<head>
<script>
	var f = '';
	document.onclick = function(){
		if (f.length<> 0 )
			document.getElementById(f).focus();
	}
</script>
</head>
<body>
<input type="text" id="asd" onblur="f=this.id" />
<input type="text" id ="as"/>
</body>
</html>
...
Рейтинг: 0 / 0
12.03.2010, 14:53:27
    #36516889
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
поправка if (f.length!=0)
...
Рейтинг: 0 / 0
12.03.2010, 15:01:48
    #36516918
vasos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
так уже лучше :) спасибо, теперь хоть есть от чего оттолкнуться :)
...
Рейтинг: 0 / 0
12.03.2010, 15:03:58
    #36516929
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
но это разумеется будет работать только при потере фокуса, связанным со щелчком мыши)) если поле потеряет фокус другим способом(например tab), то это не сработает
...
Рейтинг: 0 / 0
12.03.2010, 15:19:16
    #36516974
vasos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
эм....да....уже напробовался по всякому....немного не то....черт побери! а нету полноценной замены такому действу?
...
Рейтинг: 0 / 0
12.03.2010, 15:21:24
    #36516984
vasos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
vasosэм....да....уже напробовался по всякому....немного не то....черт побери! а нету полноценной замены такому действу?
вариант с отловом нажатия таб не рассматривается....это пользовательские функции....все не так просто....какже обойти это использование?
...
Рейтинг: 0 / 0
12.03.2010, 15:36:18
    #36517029
EmilRegis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
чтозначит пользовательские функции? почему правда не отловить нажатие таба и так же не обработать?
...
Рейтинг: 0 / 0
12.03.2010, 15:54:13
    #36517081
vasos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
мммм....не хочу вдаваться в подробности, скажу просто что именно так внедрить эту функцию оооочень проблематично, придется лезть в то, чего я не делал...это большой костыль....дело в том что есть определенный интерфейс позволяющий пользователю навешивать определенный функции на поля таблиц, это одна из них и она просто выбивается из канона, придется оооочень много чего переделывать....к тому же непонятно как ее внести в базу ибо описать ее(функцию) невозможно...у нее даже имени нету, вобщем задача примерно мне была поставлена такая....есть файл .js, в нем есть функции func1(arg1,arg2), func2(arg1,arg2) и тд, все эти функции описываются в базе имя, код, русское_имя и тд...мне нужно было дописать туда функцию, которая бы делала ограничение мин и макс количества символов в поле ввода, это я и попробовал сделать, но напоролся на такой косяк...
...
Рейтинг: 0 / 0
12.03.2010, 15:55:53
    #36517085
vasos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
в общем теоретически функция должна выглядеть так:

function func(arg1, minmax)
{
...
...
}
и никак иначе :(
...
Рейтинг: 0 / 0
13.03.2010, 02:39:54
    #36517945
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
Вы слегка не учитываете последовательность событий. А она такова:
1. ставите курсор в первый элемент
2. щелкаете во второй элемент (или таб жмете, не важно)
3. у первого элемента начинает отрабатываться скрипт
4. скрипт возвращает фокус в первый элемент
5. скрипт завершает свою работу
6. щелчок|таб из пункта 2 наконец дожидается своей очереди на обработку и ставит курсор во второй элемент

Попробуйте добавить таймаут, чтобы щелчок проскочил вперед onblur:
Код: plaintext
1.
2.
3.
4.
5.
<html>
<body>
<input id="sdf" type="text" onblur="setTimeout('document.getElementById(\''+id+'\').focus()', 1)" />
<input type="text" />
</body>
</html>
...
Рейтинг: 0 / 0
15.03.2010, 17:43:10
    #36521621
vasos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
onblur() и focus()
illion
Попробуйте добавить таймаут, чтобы щелчок проскочил вперед onblur

Спасибо большое, очень помогли
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / onblur() и focus() / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]