2

これはaaページ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);
});

フォームを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="" />

次に、これが1つのフォームに挿入されるため、PHPに送信できます。

于 2012-05-24T06:38:05.747 に答える
2

すべてのロードが完了すると、ループを実行できます。

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