■No2258 (pri さん) に返信 > javascriptでの制御方法 > 設定文字数(バイト数以上入力不可) > file fieldでの制御方法 > > などで調べてみたのですが、 > 参考になりそうなものが出てきませんでした。 ふむふむ。ありがとうございます。 小言ばかりではアレなので、私が調べた方法も書いておきますね。 まず、こんな感じのHTMLファイルを作りました(一部抜粋です)。 <form method="post" action="hoge"> <script type="text/javascript"> <!-- function xxFunc() { document.forms[0].elements["xx"].value = document.forms[0].elements["x"].value; } //--> </script> <input type="button" name="xx" id="xx" value="XX!!" /> <input type="file" name="x" onchange="xxFunc()" /> </form> file field に適当な文字を入力 →ボタンのラベルは変化なし file field に[参照...]ボタンを使って適当なファイルを設定 →ボタンのラベルが変更された ということで、onchange は手入力されたときは呼ばれていないらしいと判断。 実際のところ、file field は普通のテキストボックスとは違う部分が多いので、制御は 難しいと思います。 HTML 4.01 Strict では maxlength プロパティが使えそうな記述は見ましたが、それも 文字単位なので気休め程度ではないかと思われます。 http://jp.selfhtml.org/html/formulare/datei_upload.htm ここによると、maxlength は HTML4 以降では使えるのかどうかすら怪しそうですね。 [引用] > maxlength= を省略すると、ユーザーは好きなだけの長さのファイルを送るこ > とができます。しかしこの記述を使う時は気をつけてください。HTMLのバージ > ョン3.2ではこの説明のように決められています。ところがバージョン4.0では > この機能は属性 maxlength では触れられていません。ですからこの記述が必 > ず機能するとは考えない方がいいです。 本格的に調べるには HTML の仕様を確認するしかないかもしれません。
- Child Tree -