検証を使用するフォームがあります。このフォームには、写真をアップロードするためのセクションがあります。最初、このセクションには、次のコードを持つ6つの要素が含まれています。
<img class="photo_upload" src="image/app/photo_upload.jpg">
のクラスのクリックイベントに関数をバインドしましたphoto_upload
。この関数は、次のコードを使用して画像を最小限の形式に置き換えます。コードをコピーする
<form onsubmit="startUploadImage();" target="control_target"
enctype="multipart/form-data" method="post" action="index.php">
<input type="hidden" value="add_image" name="service">
<input type="hidden" value="1000000" name="MAX_FILE_SIZE">
<input type="file" size="10" name="photo" id="photo_file_upload"><br>
<button onclick="javascript:cancel_photo_upload();return false;">Cancel</button>
</form>
したがって、基本的に、画像をクリックすると、元の検証済みフォームに新しいフォームがネストされます。この新しいフォームを使用して画像をアップロードすると、次のようなエラーが発生します(3回繰り返されます)。
validator is undefined
http://host.com/path/index.php
Line 286
ここで何が起こっているのですか?私の推測はこれです
- イベントバブルを外部フォームに送信する
- そのフォームに検証があるため、検証がトリガーされます。
- 検証は、それをトリガーするフォームを見つけようとします。
- 検証を内部フォームにバインドしていないため、「undefined」を返します
さて、私の評価は正しいですか?そうであろうとなかろうと、どうすればこの問題を解決できますか?