Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.07.2015, 14:36
Новичок на форуме
Посмотреть профиль Найти все сообщения от AlekseyOv
 
Регистрация: 03.07.2015
Сообщений: 4

Перемещение по ячейкам таблицы
Господа, Здравствуйте!
Прошу помощи в решении след. задачи!
Есть таблица, например, 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 (permalink)  
Старый 03.07.2015, 16:10
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от AlekseyOv
в каждый последующий второй инпут находящийся в этой же строке!
Астрология какая-то. Технически попробуйте изложить ТЗ.
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2015, 16:49
Новичок на форуме
Посмотреть профиль Найти все сообщения от AlekseyOv
 
Регистрация: 03.07.2015
Сообщений: 4

После ввода в ячейку, которая находится в 1-й строке (см. картинку 1), значения "1" и нажатия на клавишу F2, результат должен получиться как на картинке 2
п.с. в первом сообщении своём видать запутанно написал, извиняюсь!
Изображения:
Тип файла: jpg 1.jpg (47.9 Кб, 4 просмотров)
Тип файла: jpg 2.jpg (50.2 Кб, 3 просмотров)
Ответить с цитированием
  #4 (permalink)  
Старый 03.07.2015, 17:04
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Это мы наблюдаем рост ютуба-поколения программистов. Остается загадкой как они текст самих скриптов осиливают, если документацию написать не могут.

Имеется строка из n полей ввода. После нажатия F2 значение поля n+2 должно быть скопировано в поля n+1 до n.length - так потянет?
Ответить с цитированием
  #5 (permalink)  
Старый 03.07.2015, 17:09
Новичок на форуме
Посмотреть профиль Найти все сообщения от AlekseyOv
 
Регистрация: 03.07.2015
Сообщений: 4

Сообщение от kostyanet Посмотреть сообщение
Это мы наблюдаем рост ютуба-поколения программистов. Остается загадкой как они текст самих скриптов осиливают, если документацию написать не могут.

Имеется строка из n полей ввода. После нажатия F2 значение поля n+2 должно быть скопировано в поля n+1 до n.length - так потянет?
Так точно!
Ответить с цитированием
  #6 (permalink)  
Старый 03.07.2015, 17:09
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от AlekseyOv
которая находится в 1-й строке
Для 2-й строки другие правила?

Сообщение от AlekseyOv
значения "1"
Для значения "2" еще другие правила?

Сообщение от AlekseyOv
как на картинке 2
Так вам нужны красные квадратики?
Ответить с цитированием
  #7 (permalink)  
Старый 03.07.2015, 17:16
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от AlekseyOv
Так точно!
Как бы не так. Короче, проиндексируйте свои инпуты и тупо их считайте. Как только больше и по модулю нечетное - скопировать.

Разумеется всю эту жиквери-бредятину надо выкинуть и сделать нормальную функцию или объект с методами.
Ответить с цитированием
  #8 (permalink)  
Старый 04.07.2015, 12:06
Новичок на форуме
Посмотреть профиль Найти все сообщения от AlekseyOv
 
Регистрация: 03.07.2015
Сообщений: 4

Сообщение от kostyanet Посмотреть сообщение
Для 2-й строки другие правила?
Для значения "2" еще другие правила?
Так вам нужны красные квадратики?
Причём тут значение 2? Я писал фразу "вводим значение, НАПРИМЕР, 1"...это значит что тут могло быть и 2 и 22 и 222 - "Например" - значит любое значение.
Причём тут красные квадратики? О них ни слова не было в тексте...
Мда...профессор так профессор...

Админ, можешь закрывать тему!
Получил ответ на другом форуме: оказалось по моему вопросу нужно было использовать nextAll() и селектор even

А по ответам типа такого:
Сообщение от kostyanet Посмотреть сообщение
Это мы наблюдаем рост ютуба-поколения программистов.
Мы наблюдаем типичного умача-форумчанина, который помимо ответов по сути вопроса (и не только) еще и поливает помоями задающего - хреновый из Вас, kostyanet, профессор!
Ответить с цитированием
  #9 (permalink)  
Старый 04.07.2015, 17:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

делегирование для инпутов в таблице
Вариант без 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>
Ответить с цитированием
  #10 (permalink)  
Старый 06.07.2015, 06:14
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от AlekseyOv
"Например" - значит любое значение.
Возьмите соцобязательство повысить уровень абстракции в следующем квартале на 20%, например.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение элементов по ячейкам таблицы cityman Элементы интерфейса 0 26.06.2015 11:15
Перемещение строк таблицы Котовский Javascript под браузер 3 03.11.2014 22:50
перемещение по строкам таблицы при помощи стрелок на клавиатуре Сергей1980 jQuery 0 27.03.2013 16:36
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
Перемещение строк таблицы в Firefox barcelona jQuery 17 23.02.2009 15:41