Перемещение по ячейкам таблицы
Господа, Здравствуйте!
Прошу помощи в решении след. задачи! Есть таблица, например, 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, время: 19:34. |