Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как реализовать ctrl+z для простых полей ввода (https://javascript.ru/forum/jquery/69922-kak-realizovat-ctrl-z-dlya-prostykh-polejj-vvoda.html)

prog77 27.07.2017 14:33

Как реализовать ctrl+z для простых полей ввода
 
Добрый день есть много полей для ввода, я заполняю их жму кнопку сформировать, и в них возвращаются сформированные данные, но не всегда эти данные верные. у меня вопрос как можно реализовать отменить действие для поля в которое была добавлена сформированная информация. То есть нажал на поле нажал на ctrl+z и вернулся старый результат для этого поля.Спасибо

j0hnik 27.07.2017 15:26

есть мысль, информация которую вы вводите в инпуты по потере фокуса сохранять в отдельную ячейку массива, и тогда у вас будет как бы история ввода. можно будет реализовать перемещение по ней вперед и назад.

j0hnik 27.07.2017 15:34

недавно решал, такую задачу, вот вам пример!

<!DOCTYPE html>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>
<body>
</head>
<body>
	<script>
		var w = 5, s = w, arr=[], i=[];
		while (w--) {
			document.body.insertAdjacentHTML('beforeend', '<span class="prev">[«< prev]</span><span class="next">[next »>]</span><br><input type="text"><br>');
			arr.push([]); 
			i.push(0);
		}
		var inp=document.querySelectorAll('input'), prev = document.querySelectorAll('.prev'), next = document.querySelectorAll('.next');
		while (s--) {
			inp[s].addEventListener('input',haOne(s),false);
			prev[s].addEventListener('click',haWho(s),false);
			next[s].addEventListener('click',haThr(s),false);
		}
		function haOne(s){
			return function (e) {
				arr[s].push(this.value);
				i[s]=arr[s].length-1;
			};
		}
		function haWho(s){
			return function (e) {
				if (i[s] <= arr[s].length && i[s]) i[s]--;
				inp[s].value=arr[s][i[s]];
			};
		}
		function haThr(s){
			return function (e) {
				if (i[s] < arr[s].length-1 && i[s]>=0) i[s]++;
				inp[s].value=arr[s][i[s]];
			};
		}
	</script>
</body>
</html>
</body>
</html>

prog77 27.07.2017 16:04

j0hnik,
спасибо буду разбираться))


Часовой пояс GMT +3, время: 07:46.