プロが教えるわが家の防犯対策術!

に文字列をセットするために

<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>

であればセットできるのです
どうしたらセットできるでしょうか?

A 回答 (3件)

Minefield 3.0a1で実験を行いました。


おっしゃる状況が再現できました。

参照クリック後のinput要素のvalue値を調べた時は問題なさそうだったので

Console2を用いてエラーを見てみたところ
エラー: Security error = NS_ERROR_DOM_SECURITY_ERR

と、セキュリティ上の理由からエラーが出ているようでした。多分仕様だと思います。

ところで...補足要求。
【何がしたくて】これを行いたいのでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございます

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

お礼日時:2006/05/04 15:39

ブラウザの実装依存だと思いますが


通常はセキュリティ上、危険なため
input fileのvalue属性はread Onlyになっていて
値の変更出来ないはずです。

ちょっと考えると分かりますが
これが可能になると、サーバ側から
クライアント側のファイルを勝手に盗み出すことが可能になってしまいますので。。
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/04 17:20

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2006/05/04 17:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!