Перемещение по ячейкам таблицы
Господа, Здравствуйте!
Прошу помощи в решении след. задачи! Есть таблица, например, 10*10. Внутри каждого TD расположено поля ввода INPUT. После ввода какого-нибудь значения в инпут, например "1", оставаясь в фокусе в этом ипуте, нужно нажать на клавишу F2 и чтобы это значение, т.е "1" продублировалось в каждый последующий второй инпут находящийся в этой же строке! У меня получается только так (ниже кусок кода), что у меня вся строка забивается через 2 ячейки, а мне нужно так, чтобы эта автоматическая простановка шла после (т.е справа) инпута, в котором сейчас фокус. Т.е если у нас таблица 10*10, я тыкаю в 5-ю ячейку второй строки, ввожу туда значение "1" и нажимаю на F2 - у меня должно это значение прописаться только в ячейки 7 и 9 этой же строки (т.е стоящие справа от нашей 5-й), а все ячейки, которые были перед 5-й - туда ничего не вставлять! $('input[type=text]').focus(function(){ var count = 0; $(this).bind('keydown', 'f2', function(){ value = $(this).val(); $(this).parent('td').parent('tr').find('td > input[type=text]').each(function() { count++; if(count==2){ count = 0; $(this)[0].value = value; } }); }); }); Тут что-то совсем простое, но не соображу какое условие для ИЧ правильно сделать, чтобы перебирал ячейки после инпута в котором сейчас фокус... |
Цитата:
|
Вложений: 2
После ввода в ячейку, которая находится в 1-й строке (см. картинку 1), значения "1" и нажатия на клавишу F2, результат должен получиться как на картинке 2
п.с. в первом сообщении своём видать запутанно написал, извиняюсь! |
Это мы наблюдаем рост ютуба-поколения программистов. Остается загадкой как они текст самих скриптов осиливают, если документацию написать не могут.
Имеется строка из n полей ввода. После нажатия F2 значение поля n+2 должно быть скопировано в поля n+1 до n.length - так потянет? |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Разумеется всю эту жиквери-бредятину надо выкинуть и сделать нормальную функцию или объект с методами. |
Цитата:
Причём тут красные квадратики? О них ни слова не было в тексте... Мда...профессор так профессор... Админ, можешь закрывать тему! Получил ответ на другом форуме: оказалось по моему вопросу нужно было использовать nextAll() и селектор even А по ответам типа такого: Цитата:
|
делегирование для инпутов в таблице
Вариант без jquery, изменить значение в инпут и нажать F2
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <table width="400"> <thead> <tr> <th>Title 1</th> <th>Title 2</th> <th>Title 3</th> <th>Title 4</th> <th>Title 5</th> <th>Title 6</th> </tr> </thead> <tbody> <tr> <td><input></td> <td><input></td> <td><input></td> <td><input></td> <td><input></td> <td><input></td> </tr> <tr> <td><input></td> <td><input></td> <td><input></td> <td><input></td> <td><input></td> <td><input></td> </tr> </tbody> </table> <script> var table = document.querySelector("table"); table.addEventListener("keydown", function(a) { var c = a.target; if ("INPUT" == c.tagName && 113 == a.keyCode) { var d; for (a = c.parentNode; "TR" != a.tagName && a;) a = a.parentNode; if (a) { a = a.querySelectorAll("input"); for (var b = 0, e = 1; a[b]; b += e) a[b] == c && (d = c.value, e = 2), void 0 != d && (a[b].value = d) } } }); </script> </body> </html> |
Цитата:
|
Часовой пояс GMT +3, время: 17:08. |