パスワードを忘れた? アカウント作成

Firefox 77ではテキスト入力フィールドにmaxlengthを超える文字列を貼り付けた時に自動で切り詰められなくなる」記事へのコメント

  • フォームを送信しようとしたときにチェックするというのは、form の submit をフックするということですかね。それだと「JavaScriptでフォーム内容を取得し、Ajaxで送信する」タイプのページはどうなるんでしょう。ちょっと考えてみたのですが

    A) form の submit 時のみチェックして警告を出す
      →ajaxではmaxlengthを超えたデータが送信されてしまう

    B) http request 発行時に警告を出す
    C) JavaScriptでフォーム内容取得時に警告を出す
      →どちらも、そこで処理中断されることを想定していない、既存のページでは、警告を出したあとのエラー復帰ができないケースがありそう。

    ってことで、JavaScriptでの処理を従来通り正常に進行させるためには、フォーム送信時ではなく、入力(ペースト)段階で
    「maxlengthを超えたら、そのフォームにフォーカスしたままになり、maxlength以下に収めるまで他の操作をできなくする」
    ようにするしかないような気がします。

    • by Anonymous Coward

      そういう行儀悪いことをしたいんなら、わざわざそうしたい理由をちゃんとbugzillaで説明して納得させないと。
      「ボクの考えは説明しないし開発者の想定していない使い方をするけど、全部誰かが事前に汲み取って完璧にボクが納得するように対応し続けてくれないとヤダ」というのはただの駄々っ子。

      • 自分でサイトを作る場合の話ではなく、既存のサイトでそういうことしてるのは結構見かける、という話です。(これは元コメに書き忘れてました。すみません)

        あとは、「フォーム内容をJavaScriptで取得してAjax送信する」のが「行儀が悪い」こととは思えません。環境依存は強くなりますが、今時JavaSriptオフだと動かないサイトなんてそこら中にあるし。

        • by Anonymous Coward

          「行儀の悪い」っていうのは,「フォーム内容をJavaScriptで取得してAjax送信する」ではなく,「maxlengthを超えたら、そのフォームにフォーカスしたままになり、maxlength以下に収めるまで他の操作をできなくする」というあなたの思いついた仕様案ではないだろうか?

人生の大半の問題はスルー力で解決する -- スルー力研究専門家

処理中...