Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Изменение параметра name у всех input. (https://javascript.ru/forum/jquery/45167-izmenenie-parametra-name-u-vsekh-input.html)

xTODx 17.02.2014 16:55

Изменение параметра name у всех input.
 
Всем привет.
И так, стоит задача, поменять у всех элементов input, в элементе с id #edit параметр name.
В принципе как сделать что бы брать только input понятно, и ясно.
просто взять #edit input
но как менять параметр name???
$("#edit li input").each(function(i){
		names = $(this).attr(name)
			alert(names);
			names.replace(/[^a-z]/g, '')
			$(this).attr(name, names+parseInt(i+1));

	});

<ul id = 'edit'>
    <li>
      <input type = 'text' name = 'name'>
    </li>
 <li>
      <input type = 'text' name = 'name'>
    </li>
</ul>

В результате должный выйти инпуты с именами name1 и name2

рони 17.02.2014 17:00

xTODx,
4 строка что делает? по вашему и parseInt он необходим?

xTODx 17.02.2014 17:09

4 строка убирает цифры с name.
parseInt не нужно?? тут проблемка в том, что alert
undifiend показывает.

xTODx 17.02.2014 17:11

по идее вообще понял, что нужно
$("#edit")each(function(i){

но как тогда до input достучаться ?

рони 17.02.2014 17:21

Цитата:

Сообщение от xTODx
4 строка убирает цифры с класса.

причём тут класс? -- 4 строка у вас пока бесполезна -- подумайте почему -- это вам очень пригодится.
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>

<body>
<ul id = 'edit'>
    <li>
      <input type = 'text' name = 'name'>
    </li>
 <li>
      <input type = 'text' name = 'name'>
    </li>
</ul>
<script>
  $("#edit li input").each(function(i){
	    var names = $(this).attr('name');
			$(this).attr('name', names+(++i));
           alert($(this).attr('name'))
	});

</script>
</body>

</html>

xTODx 17.02.2014 17:28

Цитата:

Сообщение от рони (Сообщение 298055)
причём тут класс? -- 4 строка у вас пока бесполезна -- подумайте почему -- это вам очень пригодится.

ой. исправился)) не с класса.
Ну да, я написал name='name'. но это набросал что бы сюда написать.
А если так было бы
<ul id = 'edit'>
    <li>
      <input type = 'text' name = 'name3'>
    </li>
 <li>
      <input type = 'text' name = 'name2'>
    </li>
<li>
      <input type = 'text' name = 'name5'>
    </li>
</ul>

xTODx 17.02.2014 17:31

$("#edit li input").each(function(i){
	    var names = $(this).attr('name');
		names = names.replace(/[^a-z]/g, '')

			$(this).attr('name', names+(++i));
           alert($(this).attr('name'))
	});

Спасибо, вот так всё работает)) а names = то не заметил, что не поставил(

xTODx 17.02.2014 17:33

и да, спасибо вам огромное)) писал раньше в теме про sortable, там вы тоже помогли, собственно туда это и делал я...)) нумеровал...)

рони 17.02.2014 17:37

Цитата:

Сообщение от xTODx
names = names.replace(/[^a-z]/g, '')

ок!:)

xTODx 17.02.2014 17:40

как видите, так вот решил это всё сделать. с нумеровкой в сортировке, с интервалом в пару секунд будет обновлять номера))
И в одно поле буду выводить отдельно в скрытую форму n, что бы там показало последний номер.
Потом в цикле php, буду $_POST проверять в цикле, как раз то количество раз, которое указано в скрытой форме n) разумно?


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