0

私の Web サイトには、複数のファイル入力フィールドを含むフォームがあります。最初のものは次のとおりです。

<input type="file" name="questionimages[]" multiple />

これを使って複数の画像をアップロードします。次のものは次のとおりです。

<input type="file" name="optionimages1" />
<input type="file" name="optionimages2" />
<input type="file" name="optionimages3" />
...
<input type="file" name="optionimagesn" />

これらの入力フィールドの数は、ユーザー入力によって異なります。最初の入力フィールドを除くすべてがユーザーによって動的に挿入されます。私は基本的に jquery を使用しhtml、ユーザーがボタンをクリックするたびに新しい入力フィールドを挿入するメソッドを使用します。入力フィールドの名前の末尾なので、残りの部分と区別できます。

関数を使用してajax経由で画像をアップロードするためにJqueryフォームプラグインを使用していajaxSubmitます。

問題は、ユーザーがそれぞれのボタンをクリックして新しい入力を挿入すると、その新しい入力フィールドの name 属性questionimages[]が最初の入力フィールドの名前と同じになり、ユーザー入力に関係なく常に存在することです。私は次のようなものを書いていますが:

$('#someID').html('<input type="file" name="optionimages1" />');

入力フィールドは name のquestionimages[]代わりにname を取得しoptionimages1ます。これは何が原因ですか?Jquery フォーム プラグインは、新しく挿入された入力タグの名前の値を自動的に上書きしますか?

注:動的に追加されたフィールドから画像を追加して、PHP の最初の入力フィールドからアップロードされた画像と区別できるようにしたいので、最初の入力フィールドを使用してすべての画像をアップロードしません。最初の入力フィールドには必要に応じて複数の画像を追加できますが、他の入力フィールドで追加した画像は別の目的で必要な画像であるため、最初の入力フィールドでアップロードした画像と区別する必要があります。

4

1 に答える 1

0

I think the problem is in the way you are adding the fields. However if you want to manualy set the name of the field you can always use:

$("#newfield").attr("name","theNameIWant");

to change the attribute "name" of the input field. You can also select the last input field like this:

$(".container input:last")

That way you can alter only the newly added field without having to set an ID

于 2013-04-19T19:03:05.267 に答える