WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:ファイル選択コントロールの変更

0:[投稿] のぐりん [MAIL] [2002/11/05 17:42 ][環境:WIN+IE ASP]

お疲れ様です。のぐりんです。
ファイル選択コントロールについて質問があります。

<INPUT TYPE="File">を用いると、通常、ローカルファイル表示フィールドと、「参照...」ボタンが表示されますが、
客先の要求により、ローカルファイル表示フィールドの削除(または不可視)、「参照...」ボタンの表示を変更(「参照」→「修正」など)出来ないかとのことです。

私の調べたところ、出来ないという結論に達しましたが、これらは実現可能なのでしょうか?実現可能であれば、方法を教えて下さい。


1:[回答] ween [2002/11/05 18:36 ]

http://www.microsoft.com/japan/msdn/columns/webteam/webteam07022001.asp#webteam07022001_topic1
この方法自体はIE5で上手くいかないらしいのですが(※1)
ファイル表示フィールドを表示させないのであれば
利用できないでしょうか。

※onChangeイベントが上手く働かないらしいです。


2:[完了] のぐりん [MAIL] [2002/11/05 18:47 ]

回答ありがとうございます。
この方法は、ファイル選択コントロールを不可視にして、
別ボタンでファイル選択コントロールのクリックイベントを発生させる方法ですね。
この方法で、実現したいと思います。


3:[質問] のぐりん [MAIL] [2003/01/04 21:50 ]

weenさんに提示されたURLを参考に、以下のようなソースを作成しました。

ところが、「ファイル選択」ボタンを押下後(fileDisp呼出し後)、これをSubmitする時に、JavaScript側で「アクセスが拒否されました」とエラーが出てしまいます。
尚、ファイル選択コントロールの「参照...」ボタン押下時はエラーが出ません。(ただし、一度でもfileDispを呼び出すと、エラーが出る。)

原因、対策方法のご存知の方、いらっしゃったら、回答お願いします。

JavaScript部分
function fileDisp(index){
 var fileName;
 var rFile = eval("document.BASE.rFile" + String(index));
 rFile.click();
 /*
 fileName = rFile.value.split("\\");
 if (fileName[fileName.length - 1].length != 0){
   document.BASE.SankouName[index-1].value = fileName[fileName.length - 1];
 }
 rFile = null;
 */
}

HTML部分
<tr>
<td>参考資料1</td>
<td>
<INPUT TYPE="Text" NAME="SankouName" size="30" VALUE="" style="font-size: 9pt" Maxlength="20">
<INPUT TYPE="Button" VALUE="ファイル選択" name="BtnDisp" OnClick="fileDisp('1')">
<input type="file" name="rFile1" size="30" style="display:none;">
</td></tr><tr>
<td>参考資料2</td>
<td>
<INPUT TYPE="Text" NAME="SankouName" size="30" VALUE="" style="font-size: 9pt" Maxlength="20">
<INPUT TYPE="Button" VALUE="ファイル選択" name="BtnDisp" OnClick="fileDisp('2')">
<input type="file" name="rFile2" size="30" style="display:none;">
</td></tr>


4:[回答] hoge [2003/01/05 00:32 ]

IEのインターネットオプションの設定って関係ないでしょうか?
カンですが・・・


5:[質問] のぐりん [MAIL] [2003/01/05 13:48 ]

探してみたけれど、関係ないようです。

どうやら、rFile.click();など、JavaScriptでファイル選択コントロールの値を変更すると、submitが拒否されるようです。
IEのセキュリティの変更でしょうか?

回避する方法、代替案はないでしょうか?


6:[保留] のぐりん [MAIL] [2003/01/07 09:58 ]

ファイル選択コントロールを不可視にする目的は、ボタンクリック後、パスを抜いたファイル名を別途登録(編集も可能)するため、
以下のスクリプトを動かそうとしていました。

fileName = rFile.value.split("\\");
if (fileName[fileName.length - 1].length != 0){
  document.BASE.SankouName[index-1].value = fileName[fileName.length - 1];
}
rFile = null;

現在、ファイル選択コントロールの不可視を止め、ファイル選択コントロールの参照ボタンを押下後、BtnDispを押して、ファイル名を引用する処理のみにしています。

とりあえず、保留にしておきますが、再び情報が入手したいと思いますので、何かわかる方がいらっしゃいましたら、よろしくお願いします。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World