Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разбить одно поле на 2 (https://javascript.ru/forum/misc/25857-razbit-odno-pole-na-2-a.html)

GennadiyZm 17.02.2012 16:06

Разбить одно поле на 2
 
Здравствуйте. Помогите разбить одно поле на 2. Ну например есть поле с именем name="pole" и мне надо его разбить на 2 поля - ввёл в одно поле текст и во второе и это всё одно поле, которое соединяется например знаком &. Перелазил весь интернет, учебные материалы, но так и не смог найти решение.

Pavel M. 18.02.2012 22:40

а почему нельзя использовать два inputa а между ними & ?

GennadiyZm 19.02.2012 13:48

Ну ведь в каждом input'е надо ставить name="xxx", причём в каждом разное. А мне надо из одного поля с name="pole" сделать 2 поля - я заполняю эти 2 поля и они объединяются.

monolithed 19.02.2012 18:52

GennadiyZm,
Вы название раздела читали? К Учебным материалам ваш вопрос никакого отношения не имеет!

Pavel M. 19.02.2012 21:18

Цитата:

Сообщение от GennadiyZm (Сообщение 158438)
Ну ведь в каждом input'е надо ставить name="xxx", причём в каждом разное. А мне надо из одного поля с name="pole" сделать 2 поля - я заполняю эти 2 поля и они объединяются.

сделайте рядом <input type=hidden name=pole value="">
и при изменении в двух отдельных инпутах меняйте value этого скрытого поля

GennadiyZm 21.02.2012 17:46

Pavel M., пример напишите

Pavel M. 26.02.2012 09:58

можно так
использовал jquery для быстроты
<script src='http://code.jquery.com/jquery-git.js'></script>
<script>
	$(function(){
		var pole12 = $('input[name="pole1"], input[name="pole2"]'),
			pole = $('input[name="pole"]'),
			button = $('button');

		pole12.change(function () {
			
			var v = pole12.map(function() {
			  return this.value;
			}).get().join('&'); 

			pole.val(v);
		});
			
		button.click(function () {
			alert(pole.val());       
		}); 
	}); 
</script>

<input type=hidden name=pole>
<input type=text name=pole1>&<input type=text name=pole2>
<button>Значение скрытого поля</button>

wegas 27.03.2019 16:35

А как сделать тоже самое, только наоборот из 1 input (вводит с клавиатуры) разделенные ":" например время (02:01), нужно вывести в 2 скрытых input'a h = 02, m = 01.

Malleys 27.03.2019 21:39

<input type="text">
<input type="hidden" name="h">
<input type="hidden" name="m">
<script>

document.querySelector("input[type=text]").addEventListener("input", function(event) {
	var value = event.target.value;
	var match = value.match(/^(\d{1,2})\D?(\d{2}|)$/) || [];
	if(!match[1]) match[1] = "00";
	if(!match[2]) match[2] = "00";

	document.querySelector("input[name=h]").value = match[1];
	document.querySelector("input[name=m]").value = match[2];
});

</script>

рони 27.03.2019 22:05

Malleys,
почему| в match, а не например
var match = value.match(/^(\d{1,2})\D?(\d{1,2})?$/)
?
ещё варианты
var match = value.match(/\d{1,2}/g) || []; 
var match = value.split(":") || [];


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