Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Javascript (jQuery): нужно получить значение второго поля с тем же именем  (Прочитано 9234 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Золотая Лань
Молодой специалист

ru
Offline Offline
Пол: Женский

« : 06-08-2010 08:12 » 

Вот такой индийский код:
Код:
<input name="userfile" />
<input name="userfile" />
Мне нужно получить то значение, которое попадает во второе поле.
$("input[name=userfile]").val() возвращает только значение первого поля.


Применение именно jQuery ну совсем необязательно.
Назначить id в данном конкретном случае проблематично.
« Последнее редактирование: 06-08-2010 08:23 от Золотая Лань » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 06-08-2010 08:23 » 

а не лежит ли оно в массиве?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Золотая Лань
Молодой специалист

ru
Offline Offline
Пол: Женский

« Ответ #2 : 06-08-2010 08:25 » 

из метода val() возвращается строка.
Как дальше — фантазия заканчивается.
Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #3 : 06-08-2010 08:38 » 

Золотая Лань, используй что-нибудь вида: document.forms[number].elements[number]
Если точно знаешь какой будет номер элемента - можешь обращаться прямо по индексу, а иначе - делай перебор и определяй косвенно по тэгу и имени.
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #4 : 06-08-2010 08:40 » 

Дополнение - возможно, будет работать даже documents.forms[0].input[0]
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 06-08-2010 08:42 » 

ну допустим "индийский", тебе запрещено править хтмл или запрещено править серверную часть?

jQuery не знаю, потому и спрашиваю.

после сабмита, какой value будет у серверного запроса?

или это разные формы?
Или два поля ввода?
$("input[name=userfile][0]").val() ? ? ?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #6 : 06-08-2010 08:48 » 

Sla, возможно, что сабмита нет, а данные отправляются через ajax.. Или просто проверяются на клиенте скриптом...
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Золотая Лань
Молодой специалист

ru
Offline Offline
Пол: Женский

« Ответ #7 : 06-08-2010 09:44 » 

В данном случае сабмита не происходит. Нужно написать скрипт, который обрабатывает введённые в форму значения на стороне клиента.
При сабмите же (но этот случай к моему скрипту не относится) отправляется значение последнего поля.

$("input[name=userfile][0]").val() — это была моя первая мысль. Но не сработало.
В документации (а задокументирован jquery, надо отметить, вполне прилично) не нахожу ничего на сей счёт. Хотя одинаковые имена элементов форм в общем случае ведь и не запрещены.
Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #8 : 06-08-2010 09:51 » 

Золотая Лань,
Код: (Javascript)
var v0=document.getElementsByName("userfile")[0];
var v1=document.getElementsByName("userfile")[1];
alert(v0.value);
alert(v1.value);
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Золотая Лань
Молодой специалист

ru
Offline Offline
Пол: Женский

« Ответ #9 : 06-08-2010 10:46 » 

baldr, точно, оно!
Только document.getElementsByName("userfile")[1].value.
Спасибо.

хотя, конечно, это до первого изменения в форме, которое коснётся этих полей.
Записан
Falsehood
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #10 : 09-08-2010 11:38 » 

Лань,

можно и с использованием jQuery:
$($("input[name='userfile']")[1]).val()
Записан

Славная трава...
Золотая Лань
Молодой специалист

ru
Offline Offline
Пол: Женский

« Ответ #11 : 09-08-2010 18:34 » 

Falsehood, а ведь и точно!
Только этот проект уже сдан, клиент доволен как слон. Но можно ещё и поправить. Всё-таки там во всём проекте jQuery используется.

Ему три халтурщика не могли сделать, что нужно было. Хотя я совсем не понимаю почему. Задача простейшая: данные из формы отправить на сервер, там сформировать предпросмотр, и подгрузить его в определённое место на странице.
Записан
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #12 : 10-08-2010 12:25 » 

Открываем документацию и там есть все и даже с многочисленными примерами
http://api.jquery.com/next/
http://api.jquery.com/get/

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

Код:
$(document).ready(function()
{
    $("input[name='userfile']").attr('type', 'button1').
                                               next().attr('type', 'button2').
                                               next().attr('type', 'edit1').
                                               next().attr('type', 'combo1');
     ....................
});

ну а потом при обработке уже делай чего хочешь, тут не надо уже гадать, что это за кнопка или едитбокс

Код:
var edit1_value = $("input[type='edit1']").val();
Записан

С уважением Lapulya
Золотая Лань
Молодой специалист

ru
Offline Offline
Пол: Женский

« Ответ #13 : 10-08-2010 21:52 » 

lapulya, хорошая мысль, спасибо.
Заказчик, о проекте которого шла речь в начале этой темы, порекомендовал меня своему другу как специалиста по jQuery. А я пока его ну совсем почти не знаю (только вот заказчикам об этом не обязательно знать).
Спасибо, буду всё мотать на ус, учитывать возможность, и по мере возникновения необходимости применять.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines