Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Динамически изменять "id" и "label for" у инпутов (https://javascript.ru/forum/jquery/67725-dinamicheski-izmenyat-id-i-label-u-inputov.html)

alex-tiesto 05.03.2017 01:19

Динамически изменять "id" и "label for" у инпутов
 
Здравствуйте!


Вопрос следующий...

Как мне автоматически изменять
id и label for
у инпутов?

Например

<input type="radio" id="id1">
<label for="id1"></label>

<input type="radio" id="id2">
<label for="id2"></label>


Прошу обратить внимание, что input находиться не внутри label, если это имеет значение

Vlasenko Fedor 05.03.2017 02:35

это говорит о том, что вы не правильно что-то делаете
опишите для чего вам это надо
есть другие решения вашей задачи

рони 05.03.2017 03:08

Цитата:

Сообщение от alex-tiesto
Как мне автоматически изменять id и label for у инпутов?

не осилил, подожду переводчика

alex-tiesto 05.03.2017 13:37

Немного проясню ))

Я создаю каталог товаров, у каждого товара есть 2 и более инпутов.

Соответственно у каждого инпута должен быть разный id и label for

Иными словами, как мне к id и label for каждого инпута дописывать на конце цифру, которая каждый раз увеличивается на один

рони 05.03.2017 13:40

alex-tiesto,
а можно совсем просто пример 3-4 товара до и пример после(и почему это нельзя на сервере сделать сразу)

alex-tiesto 05.03.2017 14:07

Пример ДО:

<input type="radio" id="radio" name="radio" />
 <label for="radio"></label>

<input type="radio" id="radio" name="radio" />
 <label for="radio"></label>


Надо чтобы было:

<input type="radio" id="radio1" name="radio" />
 <label for="radio1"></label>

<input type="radio" id="radio2" name="radio" />
 <label for="radio2"></label>



Можно вприниципе и на стороне сервера, только опять таки я не знаю как ))

laimas 05.03.2017 14:09

Цитата:

Сообщение от alex-tiesto
Соответственно у каждого инпута должен быть разный id и label for

Ну так кто отдает поля клиенту как и метки к ним, сервер? А он разве не знает идентификаторы товаров и не может сразу прописать нужное?

alex-tiesto 05.03.2017 14:19

Сервер наверное знает ))

Первый раз просто делаю подобное, поэтому решил что на js будет проще

alex-tiesto 05.03.2017 15:58

Неужели никто не поможет?

laimas 05.03.2017 16:05

Цитата:

Сообщение от alex-tiesto
Неужели никто не поможет?

Чем? Сервер это должен делать при выводе страницы клиенту. Как у вас формируются сервером такие страницы?

рони 05.03.2017 16:07

alex-tiesto,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
  $('[name="radio"]').each(function(indx, el){
        $(this).next().attr("for" , "radio"+indx)
        this.id = "radio"+indx
        });
});
  </script>
</head>

<body>

<input type="radio" id="radio" name="radio" />
 <label for="radio">1</label>

<input type="radio" id="radio" name="radio" />
 <label for="radio">2</label>

</body>
</html>

laimas 05.03.2017 16:10

рони,
ну это ни в какие ворота, ибо изначально клиенту отдается каша никак не связанная с данными, хотя заявляется, что имеются идентификаторы.

alex-tiesto 05.03.2017 16:12

Я использую MODX revo, как там страницы формируются не знаю.

Никогда с инпутами товары не делал

рони 05.03.2017 16:17

laimas,
лучше конечно на сервере решить всё, возможно и name="radio" нужно менять под товар

laimas 05.03.2017 16:17

Вот к этому вернемся:

Цитата:

Сообщение от alex-tiesto
Я создаю каталог товаров, у каждого товара есть 2 и более инпутов.
Соответственно у каждого инпута должен быть разный id и label for

Если это кнопки, а не флажки, то ими можно выбрать одно их многих. Чего они у вас выбирают неизвестно, но как можно передать серверу выбор пользователя если эти кнопки не связаны с товаром? Покажите где в кнопках описывается, что группа N из N кнопок принадлежит товару А, а другая группа товару В?

alex-tiesto 05.03.2017 18:55

рони,

Спасибо Вам огромное!!!

То, что нужно!


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