■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 の仕様を確認するしかないかもしれません。
|