※ ChatGPTを利用し、要約された質問です(原文:jsでカスタマイズされたフォームのsubmitで)
jsでカスタマイズされたフォームのsubmitでファイルパスが消える問題について
このQ&Aのポイント
JavaScriptを使用してカスタマイズされたフォームのsubmit時に、ファイルパスが消えてしまう問題が発生しています。
Windows7でIE9の環境で投稿ボタンを押すと、元々あったタグの上に被せられた要素へフォーカスが移動し、ファイルパスが消えるため、選択されていないというエラーになります。
この問題を解決するためには、フォーカスの移動を制御する方法や、ファイルパスを保持する方法を実装する必要があります。
javascriptでフォームをカスタマイズしました。
ソース上は単純にinput type=file id="btnUpload"のタグのみがあるのですが、jsが読み込まれると、元々あったタグの上に、ファイルパス表示用のinput type=text id="dummy_txt" とアップロードボタン用のimg id="dummy_btn"が被せられます。
操作していて気付いたのですが、Windows7でIE9の環境だと投稿ボタンを押すと、フォーカスが#dummy_txtに飛んでしまい、#btnUploadの値が消えてしまいます。
そのまま投稿ボタンを押すと、ファイルパスがなくなっていることから選択されていないというエラーになってしまいます。
このファイルパスが消されないようにするための方法はありますか?
お礼
>私のWindows7+IE9ではきちんとファイルも送信されていました。 本当ですか!? >何かエラーチェック等行なっているのでしょうか。 電話番号や、担当者名などの必須入力チェック等を行っております。 その辺の処理を担当している人間に聞いてみます。 ありがとうございます!
補足
>そのまま投稿ボタンを押すと、ファイルパスがなくなっていることから選択されていないというエラーになってしまいます。 何かエラーチェック等行なっているのでしょうか。 これについてですが、送信ボタンを押すと、#dummy_txtにフォーカスが遷移してしまい、元々の#bt-uploadにあったファイルパスが消えちゃってるようなんです。。。 このフォーカス遷移をさせないようにすれば、またなんとかなるかもとは思うのですが。。。