• ベストアンサー

<input type="file"/>

に文字列をセットするために <form> <input type="file" id="x"/> </form> <input type="button" onclick="f()" value="push"/> <script> function f() { var e=document.getElementById("x"); e.value="x.txt"; } </script> としてもセットできません <form> <input type="text" id="x"/> </form> <input type="button" onclick="f()" value="push"/> <script> function f() { var e=document.getElementById("x"); e.value="x.txt"; } </script> であればセットできるのです どうしたらセットできるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#20378
noname#20378
回答No.1

Minefield 3.0a1で実験を行いました。 おっしゃる状況が再現できました。 参照クリック後のinput要素のvalue値を調べた時は問題なさそうだったので Console2を用いてエラーを見てみたところ エラー: Security error = NS_ERROR_DOM_SECURITY_ERR と、セキュリティ上の理由からエラーが出ているようでした。多分仕様だと思います。 ところで...補足要求。 【何がしたくて】これを行いたいのでしょう?

guuman
質問者

お礼

ありがとうございます サブミットが失敗したときに せっかく入れたデータを入力欄に再度設定したいからです いっぱい項目を入れてサブミットしたときに 必要項目が入力されていなくて再度入力要求するとき タイプfileだけが既入力として再設定できないので方法を探しています

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#24096
noname#24096
回答No.3

ブラウザの実装依存だと思いますが 通常はセキュリティ上、危険なため input fileのvalue属性はread Onlyになっていて 値の変更出来ないはずです。 ちょっと考えると分かりますが これが可能になると、サーバ側から クライアント側のファイルを勝手に盗み出すことが可能になってしまいますので。。

guuman
質問者

お礼

ありがとうございます あきらめるしかなさそうですね

すると、全ての回答が全文表示されます。
noname#22259
noname#22259
回答No.2

 obj.parentNode.replaceChild( obj.cloneNode(false), obj)

guuman
質問者

お礼

ありがとうございます 書かれていることを解釈できないのでできたら詳しく教えてください

すると、全ての回答が全文表示されます。

関連するQ&A