首页 > 解决方案 > 如何通过 Javascript 访问 php 代码中的输入名称?

问题描述

我有一个带有一些行的 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”索引,因为它们是克隆的。如何在 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 值等等,只需要如何更改输入字段的名称。

标签: javascriptphpforms

解决方案


你有没有尝试过?

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

由于您使用的是 jQuery,因此可以通过以下方式轻松访问节点属性:

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

jQuery API


推荐阅读