Что бы курсор "перескакивал" из поля в поле (JS)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 19:44:56.483333
|
|
|
SaBo
Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
|
Есть страница с формой, в которой огромное количество полей.Как сделать так, что бы при вводе значения в поле, когда достигается значение maxlength, курсор автоматически "перескакивал" в следующее поле? Ещё раз повторю, что в форме огромное количество полей и писать отдельную функцию для каждого поля впадло :)Можно ли сделать что-нибудь "для всего"???
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 20:02:07.926666
|
|
|
NightmareZz
Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
|
Можно. 10$ ICQ: 95-96-93
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 20:07:14.866666
|
|
|
dx
Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
|
Сделаю через час, выложу. Назло:D
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 21:14:50.376666
|
|
|
dx
Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
|
Воть. Нужно присвоить всем полям, по которым будет скакать курсор, id="какой_нибудь_текст" и добавить обработчик события onkeyup="next(this)". И нужно будет задать всем полям аттрибут maxlength. Работает в браузерах IE, Firefox, Opera (в них проверил). Пример (кстати необязательно, чтобы поля были в формах): <html><body>
<form>
<!-- побольше полей... -->
<input type='text' maxlength=3 name='name' id='id' onkeyup="next(this)"><br>
<input type='text' maxlength=4 name='name1' id='id1' onkeyup="next(this)"><br>
<input type='text' maxlength=5 name='name2' id='id2' onkeyup="next(this)"><br>
<input type='text' maxlength=6 name='name3' id='id3' onkeyup="next(this)"><br>
<input type='text' maxlength=7 name='name4' id='id4' onkeyup="next(this)"><br>
<input type='text' maxlength=8 name='name5' id='id5' onkeyup="next(this)"><br>
<input type='text' maxlength=9 name='name6' id='id6' onkeyup="next(this)"><br>
<input type='submit'>
</form>
<script language="JavaScript">
var ids=new Array('id','id1','id2','id3','id4','id5','id6'); //массив ID элементов, по которым будет скакать курсор:) в том порядке, в котором он должен по ним прыгать
function next(elem)
{
if(elem.value.length==elem.maxLength)
{
for(var i=0,l=ids.length;i<l;i++)
{
if(ids[i]==elem.id)
break;
}
if(ids[i+1])
document.getElementById(ids[i+1]).focus();
}
}
</script>
</body></html>
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 21:51:43.046666
|
|
|
SaBo
Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
|
to NightmareZz неоднократно обсуждалось, что в этом раздели не надо писать "за 10$" и пр. Если бы я хотел сделать за деньги, отправлися бы в другой раздел, или, скорее всего, вообще на weblancer.net to dx спасибо :)Но речь идёт не о том, что бы "присвоить всем полям, по которым будет скакать курсор, id="какой_нибудь_текст" и добавить обработчик события onkeyup="next(this)". ", а вообще полям НИЧЕГО не присваивать. Хотя если такого не найду, обязательно вспользуюсь твоим кодом :)
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 21:59:30.270000
|
|
|
dx
Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
|
quote:
вообще полям НИЧЕГО не присваивать. Т.е. ВСЕ поля, которые есть на странице, должны обходиться курсором? Или поля в определённой форме? Если в форме, то есть ли в ней ещё другие элементы, кроме input text и password?
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 22:36:35.643333
|
|
|
NightmareZz
Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
|
quote:
ORIGINAL: SaBo to NightmareZz неоднократно обсуждалось, что в этом раздели не надо писать "за 10$" и пр. Если бы я хотел сделать за деньги, отправлися бы в другой раздел, или, скорее всего, вообще на weblancer.net Думаешь, там за десятку отделаешься? :D quote:
ORIGINAL: SaBo to dx спасибо :)Но речь идёт не о том, что бы "присвоить всем полям, по которым будет скакать курсор, id="какой_нибудь_текст" и добавить обработчик события onkeyup="next(this)". ", а вообще полям НИЧЕГО не присваивать. Хотя если такого не найду, обязательно вспользуюсь твоим кодом :) Вот видишь. Он написал лажу. А я знаю как правильно. Потому и денег требую. Ибо.
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 22:43:19.613333
|
|
|
dx
Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
|
quote:
Вот видишь. Он написал лажу. А я знаю как правильно. Потому и денег требую. Ибо. Через 10 минут выложу "правильно":)
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 22:44:44.036666
|
|
|
NightmareZz
Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
|
quote:
ORIGINAL: dx quote:
Вот видишь. Он написал лажу. А я знаю как правильно. Потому и денег требую. Ибо. Через 10 минут выложу "правильно":) Ну-ну…. ;);):D:D:D:D
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 22:53:03.836666
|
|
|
dx
Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
|
Итак. НИЧЕГО добавлять не надо, кроме обработчика onload="setinput()" в тег body. Скрипт автоматически присваивает ID всем полям text и password в заданной форме. Потом по ним и прыгает курсор:) Посторонние поля и элементы не трогаются. Работает в IE, Opera, Firefox. Пример:
<html><body onload="setinput()">
<form id='frm' name='frm'>
<!-- много полей. Главное, задать maxlength -->
<input type='text' maxlength=3><br>
<input type='text' maxlength=4><br>
<input type="password" maxlength="3"><br>
<input type="checkbox">
<input type='text' maxlength=5><br>
<input type='text' maxlength=6><br>
<input type='text' maxlength=7><br>
<input type='text' maxlength=8><br>
<input type='text' maxlength=9><br>
<input type='text' maxlength=9><br>
<input type='text' maxlength=9><br>
<input type='text' maxlength=9><br>
<input type='text' maxlength=9><br>
<input type='text' maxlength=9><br>
<input type='text' maxlength=9><br>
<input type='text' maxlength=9><br>
<input type='submit'>
</form>
<script language="JavaScript">
var formname='frm'; //ID формы, в которой нужно прыгать по полям:)
var prefix="xid"; //префикс всех ID полей в форме
var tmp;
function xevent(elem,evt)
{
if(elem.type=="text" || elem.type=="password")
{
if(elem.value.length==elem.maxLength)
{
if(elem.id.substr(0,prefix.length)==prefix)
{
tmp=new Number(elem.id.substr(prefix.length))+1;
if(document.getElementById(prefix+tmp))
document.getElementById(prefix+tmp).focus();
}
}
}
}
function setinput()
{
var form=document.forms[formname];
var i=0;
var cnt=0;
while(form.elements[i])
{
if(form.elements[i].type=="text" || form.elements[i].type=="password")
{
form.elements[i].id=prefix+cnt;
addEvent(form.elements[i],"keyup");
cnt++;
}
i++;
}
}
function addEvent(elementObject, eventName)
{
if(document.addEventListener)
elementObject.addEventListener(eventName,
function (evt) {
xevent(elementObject, evt)
}, false);
else
if(document.attachEvent)
elementObject.attachEvent("on" + eventName,
function () {
xevent(elementObject);
}
)
}
</script>
</body></html>
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-06 00:19:19.353333
|
|
|
SaBo
Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
|
dx, огромное спасибо!!!У тебя есть счёт в Яндекс Деньгах???300 рур хочу переслать
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-06 00:20:38.510000
|
|
|
SaBo
Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
|
ty NightmareZz на лансах и за меньше отделаюсь, а в некоторых случаях вообще бесплатно.А dx'у за то, что помог денег перешлю.
|
|
|
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-06 18:15:47.400000
|
|
|
NightmareZz
Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
|
quote:
ORIGINAL: SaBo ty NightmareZz на лансах и за меньше отделаюсь, а в некоторых случаях вообще бесплатно.А dx'у за то, что помог денег перешлю. Ты так это говоришь, как будто сейчас твоя фраза шибанёт меня по башке, я осознаю что был не прав и пойду сеять разумное, доброе, вечное :D:D:D:D
|
|
|
|
|