2

这是一个页面 A.html

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

当我使用 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>

我怎样才能将表单名称重命名为 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>

当我提交时,我想使用 php 来检索数据。

for each form
    formi.txtA

这样我可以唯一地获取每个表单数据。

4

2 回答 2

5

这将重命名所有被调用form的表单并添加后缀:

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

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

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;
        });
    }
}());

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

renamer('#divid');

表单所在'#divid'的父节点的 jQuery 选择器在哪里。

更新

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

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

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

<input name="dob" type="text" value="" />

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

于 2012-05-24T06:38:05.747 回答
2

once all the loads are complete, you could run through a loop.

for(var i=0; i < $("form").size(); i++){
    $("form").eq(i).attr("name", "formName"+i);
}
于 2012-05-24T06:41:07.127 回答