Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как генерировать id инпутов ? (https://javascript.ru/forum/dom-window/81775-kak-generirovat-id-inputov.html)

venom1996 28.01.2021 13:48

как генерировать id инпутов ?
 
document.getElementById("addRow").onclick = function() {
            var row = document.createElement("tr");
            row.innerHTML = "<form method=\"post\" id=\"ajax_form\" action=\"\" > <tr style=\"height:15.75pt\">\n" +
                "                <td style=\"width:156.35pt; border-style:solid; border-width:0.75pt; padding-right:5.03pt; padding-left:5.03pt; vertical-align:top\">\n" +
                "                    <p style=\"margin-top:0pt; margin-bottom:0pt; text-align:center; font-size:12pt\"><input type='text' name=namebank' id='namebank' > <span\n" +
                                "                                style=\"font-family:&#39;Times New Roman&#39;; font-weight:bold\">&nbsp;</span></p></td>\n" +
                                "                <td colspan=\"4\"\n" +
                                "                    style=\"width:119.5pt;; border-style:solid; border-width:0.75pt; padding-right:5.03pt; padding-left:5.03pt; vertical-align:top\">\n" +
                                "                    <p style=\"margin-top:0pt; margin-bottom:0pt; text-align:center; font-size:12pt\"><input type='number' name='numzadoljen' id='numzadoljen'> <span\n" +
                                "                                style=\"font-family:&#39;Times New Roman&#39;; font-weight:bold\">&nbsp;</span></p></td>\n" +
                                "                <td colspan=\"3\"\n" +
                                "                    style=\"width:96.35pt; border-style:solid; border-width:0.75pt; padding-right:5.03pt; padding-left:5.03pt; vertical-align:top\">\n" +
                                "                    <p style=\"margin-top:0pt; margin-bottom:0pt; text-align:center; font-size:12pt\"><input type='date' name='datedogovor' id='datedogovor' style='width: 125px;'><span\n" +
                                "                                style=\"font-family:&#39;Times New Roman&#39;; font-weight:bold\">&nbsp;</span></p></td>\n" +
                                "                <td style=\"width:67.15pt; border-style:solid; border-width:0.75pt; padding-right:5.03pt; padding-left:5.03pt; vertical-align:top\">\n" +
                                "                    <p style=\"margin-top:0pt; margin-bottom:0pt; text-align:center; font-size:12pt\"><input type='date' name='dateprosrochen' id='dateprosrochen'><span\n" +
                                "                                style=\"font-family:&#39;Times New Roman&#39;; font-weight:bold\">&nbsp;</span></p></td>\n" +
                                "                <td style=\"width:71.35pt; border-style:solid; border-width:0.75pt; padding-right:5.03pt; padding-left:5.03pt; vertical-align:top\">\n" +
                                "                    <p style=\"margin-top:0pt; margin-bottom:0pt; text-align:center; font-size:12pt\"><input type='number' name='summplatcredit' id='summplatcredit'> <span\n" +
                                "                                style=\"font-family:&#39;Times New Roman&#39;; font-weight:bold\">&nbsp;</span></p></td>\n" +
                                "                <td style=\"vertical-align:top\"></td>\n" +
                                "            </tr></form>";
                            document.getElementById("node").appendChild(row);
                        }

есть такая таблица, при нажатии на кнопку добавляется ещё одна и тд, как сделать что бы при нажатии на кнопку ко всем инпутам добавлялся новый id ? к примеру щас namebank, следующая будет namebank2

рони 28.01.2021 13:53

venom1996,
var num = 0;
    document.getElementById("addRow").onclick = function() {
            num++;
            var row = document.createElement("tr");
            ....    id='namebank"+num+"'

venom1996 28.01.2021 14:10

а вопрос ещё, как мне отправить данные с этой таблицы инпутов ? отправляю через ajax

$.ajax({
                                                method: "POST",
                                                url: "http://test5.ru/local/anketa/main.php",
                                                data: {
                                                    ajax_form: $("#ajax_form").serialize(),
                                                     },
                                                success: function(data) {
                                                    console.log(data);
                                                },
                                                error: function(er) {
                                                    console.log(er);
                                                }
                                            });

но отправляются пустые значения

рони 28.01.2021 14:31

venom1996,
name тоже надо менять

рони 28.01.2021 14:38

venom1996,
на всякий случай id это уникальный идентификатор, $("#ajax_form") это первая форма с таким id.

voraa 28.01.2021 14:57

Цитата:

Сообщение от venom1996
<form method=\"post\" id=\"ajax_form\" action=\"\" > <tr style=\"height:15.75pt\">

А такое проскакивает?
Вроде y <tr> родителем может быть только <table> <tbody> <thead>, или<tfoot>.

venom1996 28.01.2021 15:10

тогда как мне отправить эту таблицу с инпутами ?

voraa 28.01.2021 15:12

Цитата:

Сообщение от venom1996
тогда как мне отправить эту таблицу

А почему обязательно это должна быть таблица?

venom1996 28.01.2021 15:15

ну потому что там таблица с инпутами :D, а вообще нужно просто отправлять все значения инпутов в этой таблице на мой обработчик,и не получается обернуть таблице в форму

voraa 28.01.2021 15:38

Я ни на чем не настаиваю. Дело ваше.
Просто браузеры работают по стандартам и правилам HTML, а не по тому, что вам хочется.
Вот такой простой пример
<html>
<head>
</head>
<body>
<table>
	<form>
		<tr>
			<td><input type=text name=n11></td>
			<td><input type=text name=n12></td>
			<td><input type=submit name=s1></td>
		</tr>
	</form>
	<form>
		<tr>
			<td><input type=text name=n21></td>
			<td><input type=text name=n22></td>
			<td><input type=submit name=s2></td>
		</tr>
	</form>
	<form>
		<tr>
			<td><input type=text name=n31></td>
			<td><input type=text name=n32></td>
			<td><input type=submit name=s3></td>
		</tr>
	</form>
</table>
</body>
</html>

Браузер превращает это в
<html><head>
</head>
<body>
<table>
	<form></form>
		<tbody><tr>
			<td><input type="text" name="n11"></td>
			<td><input type="text" name="n12"></td>
			<td><input type="submit" name="s1"></td>
		</tr>
	
	<form></form>
		<tr>
			<td><input type="text" name="n21"></td>
			<td><input type="text" name="n22"></td>
			<td><input type="submit" name="s2"></td>
		</tr>
	
	<form></form>
		<tr>
			<td><input type="text" name="n31"></td>
			<td><input type="text" name="n32"></td>
			<td><input type="submit" name="s3"></td>
		</tr>
	
</tbody></table>

</body></html>

Формы отдельно, строки с инпутами отдельно. Вне форм.
Ваше дело, можете спорить с браузером.


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