Как я могу получить доступ к имени входа в коде php через Javascript? - PullRequest
1 голос
/ 21 мая 2019

У меня есть форма PHP с несколькими строками. Эти строки имеют поля, которые выглядят так:

<input type="text" name="addresses[n][0]" value="mail " id="address" class="validate">

У меня есть следующий код в Javascript для добавления и удаления строк:

                    $(document).ready(function () {
                        $('select').material_select();
                    });
                    $(function ()
                    {

                        $(document).on('click', '.btn-add', function (e)
                        {
                            e.preventDefault();

                            var controlForm = $('.controls form:first'),
                                    currentEntry = $(this).parents('.entry:first'),
                                    newEntry = $(currentEntry.clone()).appendTo(controlForm);

                            newEntry.find('input').val('');
                        }).on('click', '.btn-remove', function (e)
                        {
                            $(this).parents('.entry:first').remove();

                            e.preventDefault();
                            return false;
                        });
                    });

Моя проблема в том, что после отправки этой формы в POST с добавленными строками добавленные имеют одинаковый индекс 'n', потому что они клонированы. Как я могу получить доступ к их атрибуту name в переменной newEntry, которая является div целой строки?

Я пробовал такие вещи, как

newEntry.find('name').val('addressesNewName')
newEntry.find('input').getAttribute('name') = 'addressesNewName'
newEntry.find('name').setAttribute("name","addressesNewName");
newEntry.find('input').find('name').val('addressesNewName');
newEntry.find('input').attr('name') = 'newaddresses';
newEntry.find('input').attr('name').val('newaddresses');

Но имя в поле ничего не меняет.

Мне не нужна помощь в назначении n значений и т. Д., Только как изменить имя поля ввода.

1 Ответ

1 голос
/ 21 мая 2019

Вы пробовали?

newEntry.attr('name', 'addressesNewName');

Поскольку вы используете jQuery, доступ к атрибутам узла легко осуществляется с помощью:

$(node).attr('attributeName'); // get attribute value
$(node).attr('attributeName', 'newValue'); // set attribute value

jQuery API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...