Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / HTML, JavaScript, VBScript, CSS Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 JS Перебрать все элементы в форме и получить их значения  [new]
Foxter
Member

Откуда: Fairfield, CS, USA
Сообщений: 419
Здравствуйте!

Спасайте, горю. Вроде бы и задача не сложная, но потерялся что-то.
Есть динамически создаваемый набор полей типа text с именами от idN до idNN. Значение N может быть произвольным.

Мне необходимо
1. Получить значения каждого элемента
2. Построить итоговое выражение типа 'idN = его значение

Подскажите, плиз, как это сделать

П.С.: Все элементы находятся в форме
28 сен 11, 09:37    [11345913]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13112
Foxter, так имена или ИД?
28 сен 11, 09:40    [11345935]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Foxter
Member

Откуда: Fairfield, CS, USA
Сообщений: 419
krvsa,
id = "idN"
28 сен 11, 09:45    [11345973]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13112
Foxter
Подскажите, плиз, как это сделать

Вообще-то, притаком раскладе, тебе нужно делать тестовый пример... Но как вариант:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<style type="text/css">
</style>
<script type="text/javascript">
function Go() {
	var o=$('#myfrm input[type="text"]')
	var i,str='',d=''
	for (i=0; i<o.length; i++) {
		if (o[i].id.substring(0,2)!='id') continue
		str+=d+o[i].id+'='+o[i].value
		d='\n'
	}
	alert(str)
}
</script>
</head>
<body>
<form id='myfrm'>
	<input id='id1' type='text' value='01' />
	<input id='id2' type='text' value='02' />
	<input id='test' type='text' value='test' />
	<input id='id3' type='text' value='03' />
	<input type='button' value='Go' onclick='Go()' />
</form>
</body>
</html>
28 сен 11, 10:00    [11346066]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Foxter
Member

Откуда: Fairfield, CS, USA
Сообщений: 419
Спасибо, сейчас попробую разобраться. И... обращусь, если что. ОК?
28 сен 11, 10:03    [11346083]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Foxter
Member

Откуда: Fairfield, CS, USA
Сообщений: 419
Я так понял это решено с подключением JQuery?
28 сен 11, 10:26    [11346187]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
junb1
Member

Откуда: Днепродзержинск, Украина
Сообщений: 412
вот попроще код :)
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<style type="text/css">
</style>
<script type="text/javascript">
function Go() {
	var str="";
	$('#myfrm input[type=text][id^=id]').each(
		function()
		{
			str+=this.id+'='+this.value+'\n';
		}
	);
	alert(str);
}
</script>
</head>
<body>
<form id='myfrm'>
	<input id='id1' type='text' value='01' />
	<input id='id2' type='text' value='02' />
	<input id='test' type='text' value='test' />
	<input id='id3' type='text' value='03' />
	<input type='button' value='Go' onclick='Go()' />
</form>
</body>
</html>
28 сен 11, 10:27    [11346197]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
junb1
Member

Откуда: Днепродзержинск, Украина
Сообщений: 412
Foxter
Я так понял это решено с подключением JQuery?

да
28 сен 11, 10:28    [11346202]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Foxter
Member

Откуда: Fairfield, CS, USA
Сообщений: 419
Блин, подключение библиотек использовать не могу. Нужен "чистый" js-код
28 сен 11, 10:36    [11346244]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13112
junb1
вот попроще код :)

Я только начинаю использовать JQ...
28 сен 11, 10:38    [11346255]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13112
Foxter
Блин, подключение библиотек использовать не могу. Нужен "чистый" js-код

$20...
28 сен 11, 10:39    [11346261]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
junb1
Member

Откуда: Днепродзержинск, Украина
Сообщений: 412
Foxter
Блин, подключение библиотек использовать не могу. Нужен "чистый" js-код

тогда пробуй перебирать через
document.getElementById("myfrm").elements.item(.....).id
28 сен 11, 10:39    [11346266]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
junb1
Member

Откуда: Днепродзержинск, Украина
Сообщений: 412
krvsa
Я только начинаю использовать JQ...

обращайся если чего, помогу ;)
28 сен 11, 10:49    [11346346]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
ShSerge
Member

Откуда: ʚонɔ dиw
Сообщений: 24851
krvsa
Foxter
Блин, подключение библиотек использовать не могу. Нужен "чистый" js-код

$20...

$15
28 сен 11, 10:54    [11346389]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13112
junb1
обращайся если чего, помогу ;)

Я и сам не промах... Учебник уже скачал...

Например твой вариант еще можно "упростить":

function Go() {
	var str="";
	$('#myfrm :text[id^=id]').each(
		function(){
			str+=this.id+'='+this.value+'\n';
		}
	);
	alert(str);
}
28 сен 11, 11:32    [11346744]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Foxter
Member

Откуда: Fairfield, CS, USA
Сообщений: 419
Ребята, может кто-нибудь займется делом и поможет человеку с кодом на чистом js
28 сен 11, 13:26    [11347760]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
pilot911
Member [заблокирован]

Откуда: Москва
Сообщений: 3906
может проще вот так:

var form_data=$('#myfrm').serializeArray();

на выходе получишь массив типа:

[
{
name: "a",
value: "1"
},
{
name: "b",
value: "2"
},
{
name: "c",
value: "3"
},
{
name: "d",
value: "4"
},
{
name: "e",
value: "5"
}
]
28 сен 11, 13:28    [11347785]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Zoria
Member

Откуда:
Сообщений: 13419
Foxter,

так все делом и занимаются...
я вот - сайт тестирую..
28 сен 11, 13:29    [11347793]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13112
Foxter
Ребята, может кто-нибудь займется делом и поможет человеку с кодом на чистом js

Цены мы тебе уже написали... Т.ч. дело за тобой.
28 сен 11, 14:04    [11348113]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
junb1
Member

Откуда: Днепродзержинск, Украина
Сообщений: 412
Foxter,

тынц
28 сен 11, 14:42    [11348516]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Foxter
Member

Откуда: Fairfield, CS, USA
Сообщений: 419
pilot911
может проще вот так:

var form_data=$('#myfrm').serializeArray();

на выходе получишь массив типа:

[
{
name: "a",
value: "1"
},
{
name: "b",
value: "2"
},
{
name: "c",
value: "3"
},
{
name: "d",
value: "4"
},
{
name: "e",
value: "5"
}
]


Но опять же JQuery :(
29 сен 11, 09:31    [11352596]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Foxter
Member

Откуда: Fairfield, CS, USA
Сообщений: 419
krvsa
Foxter
Ребята, может кто-нибудь займется делом и поможет человеку с кодом на чистом js

Цены мы тебе уже написали... Т.ч. дело за тобой.


А как же профессиональная взаимопомощь? Но мне кажется, что Вы даже за деньги не способны это сделать. Так как без JQuery никуда. Да?
30 сен 11, 11:23    [11360504]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
няка
Member

Откуда: из норы
Сообщений: 493
Foxter,

обвинять krvsa в том что он без JQuery никуда это просто лол из лолов
30 сен 11, 11:57    [11360972]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Antonariy
Member

Откуда: ☭
Сообщений: 72669
А мне кажется, толсто.
Вопрос банален, но в ответе многабукв, потому пофиг всем, кроме Яндекса. Он доставил 7ю ссылку.
30 сен 11, 12:01    [11361031]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Сирин
Member

Откуда: Пермь
Сообщений: 1073
querySelectorAll(). Без jQuery!
3 окт 11, 12:46    [11373170]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13112
А, что! Я по JQuery учебник прочёл. Т.ч. кое что могу забацать.
3 окт 11, 13:22    [11373473]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 13112
Foxter
Но мне кажется, что Вы даже за деньги не способны это сделать.

Я на "слабо" не ведусь...

Но тебе видать и $15 (предложение от ShSerge) слабо заплатить...

Foxter
А как же профессиональная взаимопомощь?

Не вижу в тебе профи... Поскольку ты не в силах самостоятельно и даже с подсказками, решить букварскую задачку...
3 окт 11, 13:26    [11373516]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
dimyaz
Member

Откуда:
Сообщений: 418
Понимаю, что много времени прошло с последнего сообщения, но чтобы не плодить новые темы, продолжу тут:
Собственно вопрос тот-же:
У кого есть javascript, который может собрать все названия всех элементов и их значения в массив?
или подтолкните в каком-нибудь направлении.
26 дек 18, 13:54    [21773835]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
MaratIsk
Member

Откуда: Astana, Kazakhstan
Сообщений: 2444
dimyaz,
<form>
    <input type="text" size="15" value="Hello World" name="elmOne">
    <input type="checkbox" name="elmTwo" checked>
    <textarea name="elmThree">Small textarea</textarea>
    <select name="elmFour">
       <option selected> Yellow
       <option> Green
    </select>
    <input type="button" onclick="elmName()" name="elmFive" value="Display Names">
    <input type="button" onclick="elmLoop()" name="elmSix" value="Display Properties and Values">
</form>


function elmName(){

   for(i=0; i<document.forms[0].elements.length; i++){
   alert(document.forms[0].elements[i].name)
   }

}

function elmLoop(){

var theForm = document.forms[0]

   for(i=0; i<theForm.elements.length; i++){
   var alertText = ""
   alertText += "Element Type: " + theForm.elements[i].type + "\n"

      if(theForm.elements[i].type == "text" || theForm.elements[i].type == "textarea" || theForm.elements[i].type == "button"){
      alertText += "Element Value: " + theForm.elements[i].value + "\n"
      }
      else if(theForm.elements[i].type == "checkbox"){
      alertText += "Element Checked? " + theForm.elements[i].checked + "\n"
      }
      else if(theForm.elements[i].type == "select-one"){
      alertText += "Selected Option's Text: " + theForm.elements[i].options[theForm.elements[i].selectedIndex].text + "\n"
      }
   alert(alertText)
   }

}	
26 дек 18, 17:34    [21774067]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
dimyaz
Member

Откуда:
Сообщений: 418
MaratIsk,

Собирает хорошо, но не цепляет таблицы, если они есть на форме.
28 дек 18, 13:10    [21775667]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
OldBoyOdeSu
Member

Откуда: и куда?
Сообщений: 202
dimyaz,

ну сделай выборку элементов по другому, например через querySelectAll
for(var i=0, elements = theForm.elements[i].querySelectorAll('input, textarea'), len = elements.length, elem = elements[0]; i<len; elem = elements[++i]){
  switch(elem.type) {
    case 'text':
      ...
      break;
  case 'checkbox':
    ...
    break;
  ...
  ... 
  }
}
29 дек 18, 05:52    [21776167]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
Aleks-Kastro
Member

Откуда: Москва
Сообщений: 1
Здравствуйте, я тут новенький. Сколько не крутил, всё равно ничего не получается, как разобрать код и собрать так, чтобы излишки убрать, видимо из-за них сайт грузится очень долго. Кто что подскажет https://st-s.pro
13 янв 19, 18:52    [21784128]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
waszkiewicz
Member

Откуда:
Сообщений: 938
Aleks-Kastro,
вйух, однозначно
13 янв 19, 19:52    [21784185]     Ответить | Цитировать Сообщить модератору
 Re: JS Перебрать все элементы в форме и получить их значения  [new]
hVostt
Member

Откуда:
Сообщений: 15085
Aleks-Kastro,

какая унылая реклама
14 янв 19, 01:04    [21784404]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / HTML, JavaScript, VBScript, CSS Ответить