Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Что бы курсор "перескакивал" из поля в поле (JS)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Что бы курсор "перескакивал" из поля в поле (JS)
Имя
Сообщение << Старые топики   Новые топики >>
Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 19:44:56.483333   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
Есть страница с формой, в которой огромное количество полей.Как сделать так, что бы при вводе значения в поле, когда достигается значение maxlength, курсор автоматически "перескакивал" в следующее поле? Ещё раз повторю, что в форме огромное количество полей и писать отдельную функцию для каждого поля впадло :)Можно ли сделать что-нибудь "для всего"???
Post #: 1
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 20:02:07.926666   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
Можно. 10$
ICQ: 95-96-93
Post #: 2
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 20:07:14.866666   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
Сделаю через час, выложу. Назло:D
Post #: 3
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 (в них проверил). Пример (кстати необязательно, чтобы поля были в формах):
&lt;html&gt;&lt;body&gt; &lt;form&gt; &lt;!-- побольше полей... --&gt; &lt;input type='text' maxlength=3 name='name' id='id' onkeyup="next(this)"&gt;&lt;br&gt; &lt;input type='text' maxlength=4 name='name1' id='id1' onkeyup="next(this)"&gt;&lt;br&gt; &lt;input type='text' maxlength=5 name='name2' id='id2' onkeyup="next(this)"&gt;&lt;br&gt; &lt;input type='text' maxlength=6 name='name3' id='id3' onkeyup="next(this)"&gt;&lt;br&gt; &lt;input type='text' maxlength=7 name='name4' id='id4' onkeyup="next(this)"&gt;&lt;br&gt; &lt;input type='text' maxlength=8 name='name5' id='id5' onkeyup="next(this)"&gt;&lt;br&gt; &lt;input type='text' maxlength=9 name='name6' id='id6' onkeyup="next(this)"&gt;&lt;br&gt; &lt;input type='submit'&gt; &lt;/form&gt; &lt;script language="JavaScript"&gt; var ids=new Array('id','id1','id2','id3','id4','id5','id6'); //массив ID элементов, по которым будет скакать курсор:) в том порядке, в котором он должен по ним прыгать function next(elem) { if(elem.value.length==elem.maxLength) { &nbsp;&nbsp; for(var i=0,l=ids.length;i&lt;l;i++) &nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp; if(ids[i]==elem.id) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break; &nbsp;&nbsp; } &nbsp;&nbsp; if(ids[i+1]) &nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(ids[i+1]).focus(); } } &lt;/script&gt; &lt;/body&gt;&lt;/html&gt;
Post #: 4
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)". ", а вообще полям НИЧЕГО не присваивать. Хотя если такого не найду, обязательно вспользуюсь твоим кодом :)
Post #: 5
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 21:59:30.270000   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
quote:

вообще полям НИЧЕГО не присваивать.

Т.е. ВСЕ поля, которые есть на странице, должны обходиться курсором? Или поля в определённой форме? Если в форме, то есть ли в ней ещё другие элементы, кроме input text и password?
Post #: 6
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)". ", а вообще полям НИЧЕГО не присваивать. Хотя если такого не найду, обязательно вспользуюсь твоим кодом :)

Вот видишь. Он написал лажу. А я знаю как правильно. Потому и денег требую. Ибо.
Post #: 7
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-05 22:43:19.613333   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
quote:

Вот видишь. Он написал лажу. А я знаю как правильно. Потому и денег требую. Ибо.

Через 10 минут выложу "правильно":)
Post #: 8
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
Post #: 9
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. Пример:
&lt;html&gt;&lt;body&nbsp; onload="setinput()"&gt; &lt;form id='frm' name='frm'&gt; &lt;!-- много полей. Главное, задать maxlength --&gt; &lt;input type='text' maxlength=3&gt;&lt;br&gt; &lt;input type='text' maxlength=4&gt;&lt;br&gt; &lt;input type="password" maxlength="3"&gt;&lt;br&gt; &lt;input type="checkbox"&gt; &lt;input type='text' maxlength=5&gt;&lt;br&gt; &lt;input type='text' maxlength=6&gt;&lt;br&gt; &lt;input type='text' maxlength=7&gt;&lt;br&gt; &lt;input type='text' maxlength=8&gt;&lt;br&gt; &lt;input type='text' maxlength=9&gt;&lt;br&gt; &lt;input type='text' maxlength=9&gt;&lt;br&gt; &lt;input type='text' maxlength=9&gt;&lt;br&gt; &lt;input type='text' maxlength=9&gt;&lt;br&gt; &lt;input type='text' maxlength=9&gt;&lt;br&gt; &lt;input type='text' maxlength=9&gt;&lt;br&gt; &lt;input type='text' maxlength=9&gt;&lt;br&gt; &lt;input type='text' maxlength=9&gt;&lt;br&gt; &lt;input type='submit'&gt; &lt;/form&gt; &lt;script language="JavaScript"&gt; var formname='frm'; //ID формы, в которой нужно прыгать по полям:) var prefix="xid";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //префикс всех ID полей в форме var tmp; function xevent(elem,evt) { if(elem.type=="text" || elem.type=="password") { if(elem.value.length==elem.maxLength) { &nbsp;&nbsp; if(elem.id.substr(0,prefix.length)==prefix) &nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp; tmp=new Number(elem.id.substr(prefix.length))+1; &nbsp;&nbsp;&nbsp;&nbsp; if(document.getElementById(prefix+tmp)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(prefix+tmp).focus(); &nbsp;&nbsp; } } } } 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") { &nbsp;&nbsp; form.elements[i].id=prefix+cnt; &nbsp;&nbsp; addEvent(form.elements[i],"keyup"); &nbsp;&nbsp; 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); } ) } &lt;/script&gt; &lt;/body&gt;&lt;/html&gt;
Post #: 10
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-06 00:19:19.353333   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
dx, огромное спасибо!!!У тебя есть счёт в Яндекс Деньгах???300 рур хочу переслать
Post #: 11
RE: Что бы курсор "перескакивал" из поля в поле (JS) - 2007-06-06 00:20:38.510000   
SaBo

Сообщений: 1089
Оценки: 0
Присоединился: 2005-02-17 20:16:54
ty NightmareZz на лансах и за меньше отделаюсь, а в некоторых случаях вообще бесплатно.А dx'у за то, что помог денег перешлю.
Post #: 12
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
Post #: 13
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Что бы курсор "перескакивал" из поля в поле (JS)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.