jquery .load重命名表单

una*_*ler 2 html javascript php jquery

这是一个页面A.html

<form name=form>
<input type=text id = txtA>
</form>
Run Code Online (Sandbox Code Playgroud)

当我使用jquery加载到B.html我加载多次.

<form name=form>
<input type=text id = txtA>
</form>

<form name=form>
<input type=text id = txtA>
</form>

<form name=form>
<input type=text id = txtA>
</form>

<form name=form>
<input type=text id = txtA>
</form>
Run Code Online (Sandbox Code Playgroud)

如何将表单名称重命名为form1,form2,form3 ... formN,以便我可以得到它

<form name=form1>
<input type=text id = txtA>
</form>

<form name=form2>
<input type=text id = txtA>
</form>

<form name=form3>
<input type=text id = txtA>
</form>
Run Code Online (Sandbox Code Playgroud)

当我提交我想使用PHP来检索数据.

for each form
    formi.txtA
Run Code Online (Sandbox Code Playgroud)

这样我就可以获得唯一的每个表单数据.

Ja͢*_*͢ck 5

这将重命名所有被调用的表单form和后缀增加的数字:

$('form[name="form"]').each(function(i) {
    this.name = 'form' + (i + 1);
});
Run Code Online (Sandbox Code Playgroud)

当您逐个加载表单时,您需要一个不同的方法:

var renamer = (function() {
    var i = 1; // private counter

    // return public interface
    return function(base) {
        $(base).find('form[name="form"]').each(function() {
            this.name = 'form' + i;
            ++i;
        });
    }
}());
Run Code Online (Sandbox Code Playgroud)

每次添加新表单时,都要调用:

renamer('#divid');
Run Code Online (Sandbox Code Playgroud)

哪里'#divid'是jQuery选择为您的形式是在父节点.

更新

您似乎有多个动态加载的输入字段.只需加载<input />片段,而不是加载一个全新的表单.

$(`#form`).load('http://www.example.com/inputfield?type=dob');
Run Code Online (Sandbox Code Playgroud)

然后服务器将返回一个片段:

<input name="dob" type="text" value="" />
Run Code Online (Sandbox Code Playgroud)

然后将其插入到一个表单中,以便您可以将其提交给PHP.