Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/141: Рейтинг темы: голосов - 141, средняя оценка - 4.51
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210

Получить значение input

12.05.2015, 19:53. Показов 26759. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажите, как получить значение конкретного input, если имеется тег со следующими атрибутами
HTML5
1
<input name="count_to_basket"  style="width:9px; height:35px; "  maxlenght="2" type="text" id=<?=$arItem['ID']?>>
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2015, 19:53
Ответы с готовыми решениями:

Получить значение из input
var inputname = $('#name'), inputsecondname = $('#secondname'), name = inputname.value, secondname = inputsecondname.value; ...

Получить значение input
Скажем есть такая ситуация, где в цикле выводится к примеру 5 разных input &lt;p&gt;&lt;label&gt;&lt;input type=&quot;text&quot;...

Как получить значение input-ов
например у меня есть несколько input-ов с атрибутом class='class1' и несколько input-ов с атрибутом class='class2'. мне нужно собрать...

19
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
12.05.2015, 20:34
JavaScript
1
$('input[name="count_to_basket"]').val();
0
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
12.05.2015, 22:15  [ТС]
А если таких input' ов с таким же name будет 10, то как получать значение для конкретного input?
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
12.05.2015, 22:44
Цитата Сообщение от pro1004ok Посмотреть сообщение
А если таких input' ов с таким же name будет 10
У вас же не в одной форме несколько таких input-ов? Поэтому можно отталкиваться от конкретной формы. А даже, если в одной, то можно достучаться по индексу:
JavaScript
1
$('input[name="count_to_basket"]:eq(3)').val(); // Четвертый input
0
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
12.05.2015, 22:52  [ТС]
Цитата Сообщение от Lazy_Den Посмотреть сообщение
У вас же не в одной форме несколько таких input-ов? Поэтому можно отталкиваться от конкретной формы. А даже, если в одной, то можно достучаться по индексу:
JavaScript
1
$('input[name="count_to_basket"]:eq(3)').val(); // Четвертый input
Всё это в одной форме. Сколько инпутов, заранее не известно. Через id можно ли как-то достучаться до конкртного инпута?
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
12.05.2015, 22:59
Цитата Сообщение от pro1004ok Посмотреть сообщение
Всё это в одной форме.
у вас несколько элементов формы с одним именем и даже не как массив (name="count_to_basket[]")?
Цитата Сообщение от pro1004ok Посмотреть сообщение
Через id можно ли как-то достучаться до конкертного инпута?
Конечно можно, только у меня было ощущение, что id элемента вы не знаете.
JavaScript
1
$('id_of_element').val();
0
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
12.05.2015, 23:26  [ТС]
Цитата Сообщение от Lazy_Den Посмотреть сообщение
$('id_of_element').val();
А почему нет атрибута name? Или он не нужен?
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
12.05.2015, 23:29
Цитата Сообщение от pro1004ok Посмотреть сообщение
А почему нет атрибута name?
Т.к. на странице не может быть несколько элементов с одним id, то и ничего дополнительного не нужно, чтоб к этому элементу обратиться. И в селекторе перед id не забудьте решетку:
JavaScript
1
$('#id_of_element')
1
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
13.05.2015, 10:23  [ТС]
Не работает. id получаю динамически (в коде тега это было написано)
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
13.05.2015, 11:26
pro1004ok, так а зачем вы спрашивали про id? Я же и предполагал изначально то, что его вы не знаете. В общем, у вас же не абстрактный вопрос о том, какие есть способы достучаться до элемента, а реальная ситуация, при которой значение какого-то input-а нужно получить. Так опишите эту ситуацию: какое событие предшествует, какая разметка и т.д. А то мы будем долго "ходить вокруг да около". Можно психануть и отфильтровать по всем доступным атрибутам и признакам:
JavaScript
1
2
3
4
5
var inpVal = $('input[type=text][name=count_to_basket][id]').filter(function(){
    var $that = $(this),
        styles = $that.css(['width', 'height']);
    return styles.width == '9px' && styles.height == '35px' &&  $that.attr('maxlenght') == 2;
}).val();
но вы же опять скажете, что input-ов с такими атрибутами и их значениями на странице может быть много. Поэтому добавьте конкретики и вашу задачу решим быстрее.
0
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
13.05.2015, 12:17  [ТС]
В разметке ниже тот самый input
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<div class="form-order">
            <form class="add_to_cart">
            <fieldset>
 
                <div style="width:40px;" class="row">
                    <div style="width:50px; position:absolute;" class="field-number">
                    <input name="count_to_basket" id=<?=$arItem['ID']?> "   maxlenght="3" type="text">
                    <span  class="top">top</span>
                    <span  class="bottom">bottom</span>
                    </div>
 
                </div>
            </fieldset>
            </form>
        </div>
<div class='addtocart' productid=<?=$arItem['ID']?>  productname='<?=str_replace("\"","\'",TruncateText($arItem['~NAME'],40))?>'>
                Добавить в корзину
            </div>
Далее, код который, в том числе, получает значения input

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<script>
    //добавляем в корзину
    $(document).ready(function(){
        $('.products .addtocart').click(function(){
            ga("send","event","item","add2cart","catalog");
//          quantity = 1;
        var quantity = $('input[name="count_to_basket"][id="<?=$arItem['ID']?>"]').val();
        var productid = $(this).attr('productid');
        var productName = $(this).attr('productname');
        var basketquantity = $('header .basket-box .basket').attr('rel');
 
//      alert(quantity);
        var newquantity = parseInt(quantity) + parseInt(basketquantity);
            function declOfNum(number, titles)  {  
                cases = [2, 0, 1, 1, 1, 2];  
                return titles[ (number%100>4 && number%100<20)? 2 : cases[(number%10<5)?number%10:5] ];  
            }
            $('header .basket-box .basket a').html(newquantity + ' ' + declOfNum(newquantity, ['товар ', 'товара ', 'товаров ']));
            $('header .basket-box .basket').attr('rel',newquantity);
 
            $.ajax({
                type: "GET",
                url: "/ajax/add_to_basket.php",
                data: "PRODUCT_ID="+productid+"&QUANTITY="+quantity
            });
            OpenAddInCart(productName);
        });
 
   
    })
</script>
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
13.05.2015, 12:27
pro1004ok, пробуйте так:
JavaScript
1
var quantity = $(this).prev('.form-order').find('[name=count_to_basket]').val();
Добавлено через 1 минуту
На всякий случай, если код выше не отработает правильно, такой вариант:
JavaScript
1
var quantity = $(this).siblings('.form-order').find('[name=count_to_basket]').val();
0
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
13.05.2015, 12:32  [ТС]
Работает, но только для первого выведенного input. Для последующих - неверное значение. Так что нужно как-то id сообщать.
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
13.05.2015, 12:36
pro1004ok, элемент с классом ".products" - это родительский для каждого товара, где и кнопка "Добавить в корзину", и тот самый input? Или же это общая обёртка для всех групп товаров?
0
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
13.05.2015, 12:40  [ТС]
<ul class="products"> - это общая обёртка для всех товаров.
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
13.05.2015, 12:50
Лучший ответ Сообщение было отмечено pro1004ok как решение

Решение

pro1004ok, Значит обёрткой для отдельно товара, по всей логике, служит элемент <li>.
JavaScript
1
var quantity = $(this).closest('li').find('[name=count_to_basket]').val();

Не по теме:

P.S. Кстати, разметка у вас грязная. Например, ниже - непонятная кавычка после id? да еще и с пробелом...

HTML5
1
<input name="count_to_basket" id=<?=$arItem['ID']?> "   maxlenght="3" type="text">

1
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
09.06.2015, 12:29  [ТС]
А как тогда получить значение input, если имеется несколько ul списков с одинаковым классом products

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<ul class="products">
<li><input name="count_to_basket"></li>
<li><input name="count_to_basket"></li>
<li><input name="count_to_basket"></li>
</ul>
 
<ul class="products">
<li><input name="count_to_basket"></li>
<li><input name="count_to_basket"></li>
 
</ul>
 
<ul class="products">
<li><input name="count_to_basket"></li>
<li><input name="count_to_basket"></li>
</ul>
0
312 / 106 / 69
Регистрация: 18.04.2015
Сообщений: 346
09.06.2015, 12:33
JavaScript
1
2
3
$('.products input').each(function(){
$(this).val(); //здесь будет значение при переборе инпутов
});
1
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
09.06.2015, 12:47  [ТС]
А если еще кнопки добавлены для этих input ов, то как с ними быть? как сделать так чтобы корректно увеличивалось уменьшалось значение для input
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$('.products input').each(function(){
 
$("#row #top1").click(function(){
    var count1=parseInt($(this).val());
 
    if (isNaN(count1))
{
 
    $(this).val(1);
 
}
    else if (!isNaN(count1))
{
        countPlusMinus(this, 1);
}
    });
 
$("#row #bottom1").click(function(){
        countPlusMinus(this, -1);
    
    });
 
function countPlusMinus(obj, change){
    change = parseInt(change);
    var $obj = $(obj);
    var curCount = parseInt($obj.val());
    if(!isNaN(curCount) && !isNaN(change)) 
{
        var count = curCount + change;
        if(count>0 && count<999)
{
            $obj.val(count);
        }
        if(count==null)
        {
            count=1;
            $obj.val(count);
        }
    }
}
 
});
0
2 / 2 / 0
Регистрация: 13.11.2008
Сообщений: 210
10.06.2015, 14:31  [ТС]
Тема актуальна. Кто-нибудь может подсказать? Очень надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2015, 14:31
Помогаю со студенческими работами здесь

Получить значение input в IE7
Здравствуйте. Данный код $(document).ready(function() { $(&quot;.txFilter&quot;).click(function() { // id строки var...

Как получить значение с input text?
Добрый день. Заполняю таблицу из Spring: &lt;tr th:each=&quot;customerOrder : ${selected}&quot; &gt; &lt;td&gt; &lt;img...

Получить значение input после нажатия кнопки
доброго времени суток. я хочу чтобы у меня после каждого нажатия на кнопку клавиатуры в input, выводился alert со значением input. ...

Получить значение текста в input при его изменении.
Допустим у меня есть такой вот input: &lt;input id=&quot;answer&quot; type=&quot;text&quot; value=&quot;какое-то значение&quot; /&gt; Как мне получать значение, когда...

Получить значение input в javascript
Здравствуйте все! Пишу сайт на РНР, в одном месте нужно сделать что-то типа маленького калькулятора. Т.к. РНР исполняется на стороне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru