jquery .load重命名表单

时间:2012-05-24 06:35:15

标签: php javascript jquery html

这是一个页面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

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

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:2)

一旦所有负载完成,您就可以运行循环。

for(var i=0; i < $("form").size(); i++){
    $("form").eq(i).attr("name", "formName"+i);
}