none
html5 改行の桁数について RRS feed

  • 質問

  • html初心者です・・・。

    TextAreaにMaxLength属性の指定をして、入力文字数の制御を行っております。

    IE(Windows)では改行が1桁と換算されるのですが、Mac(Safari)では2桁と換算されます。

    【MaxLengthを10と指定したTextArea】

    IE(Windows) 以下の内容まで入力できる。

    12345[改行]

    1234

    Mac(Safari) 以下の内容までしか入力できない。

    12345[改行]

    123

    IE(Windows)とMac(Safari) で同じように改行を1桁と換算させ、MaxLength属性を指定することはできるのでしょうか?

    • 移動 星 睦美 2015年3月9日 6:09 .NET Framework 全般 から
    2015年3月9日 5:16

回答

  • こんにちは。
    レスがつきませんね。IEの問題でも無いと思うので回答を得るのは難しいのでしょうか。

    さて、詳しいことはわからないのですが
    CRLFの扱いがOS、ブラウザ間で異なるため起きるのかなと推測します。
     Windows:IE->OK, FF->OK, Safari->OK, Chrome->NG
     Mac:FF->OK, Safari->NG, Chrome->NG

    JavaScriptでやってみたところ文字数の統一自体はできそうでした。
    ここからごにょごにょやると目的が実現できるかもしれませんが
    知識が乏しく中々うまいこといかなかったので
    参考までに途中までで投稿致します。

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="UTF-8">
    <script type="text/javascript">
    function checkMaxLength(sender, max) {
        if (sender.value.length > max) {
            sender.value = sender.value.substring(0, max);
            event.keycode = 0;
            return false;
        }
        return true;
    }
    </script>
    <title></title>
    </head>
    <body>
    <textarea onkeyup="checkMaxLength(this, 10);" onkeypress="checkMaxLength(this, 10);"></textarea>
    </body>
    </html>
    
    #問題点:一瞬、超過分の文字が見えてしまう。
    2015年3月10日 16:23
    モデレータ

すべての返信

  • フォーラム オペレーターの星 睦美です。
    yhaaaa さん、投稿ありがとうございます。

    .NET Framework フォーラムに投稿いただきましたが、質問の内容から回答がつきやすいようにInternet Explorer フォーラムに移動させていただきます。(こちらの返信を確認していただくために少し時間をおいてから移動します。)
    もし投稿した質問が見当たらない場合には、フォーラムページの左上[クイック アクセス] >マイスレッド で投稿した質問を確認できます。フォーラム ユーザーからの回答がお役にたちましたら、投稿者からの[回答としてマーク] をお願いします。

    ・フォーラムのご利用方法、ヘルプ、回答のガイドラインに関するお知らせ:


    フォーラム オペレーター 星 睦美 - MSDN Community Support


    • 編集済み 星 睦美 2015年3月9日 6:09 編集
    2015年3月9日 5:52
  • お手数おかけ致します。

    ありがとうございます。

    2015年3月9日 6:00
  • こんにちは。
    レスがつきませんね。IEの問題でも無いと思うので回答を得るのは難しいのでしょうか。

    さて、詳しいことはわからないのですが
    CRLFの扱いがOS、ブラウザ間で異なるため起きるのかなと推測します。
     Windows:IE->OK, FF->OK, Safari->OK, Chrome->NG
     Mac:FF->OK, Safari->NG, Chrome->NG

    JavaScriptでやってみたところ文字数の統一自体はできそうでした。
    ここからごにょごにょやると目的が実現できるかもしれませんが
    知識が乏しく中々うまいこといかなかったので
    参考までに途中までで投稿致します。

    <!DOCTYPE html>
    <html lang="ja">
    <head>
    <meta charset="UTF-8">
    <script type="text/javascript">
    function checkMaxLength(sender, max) {
        if (sender.value.length > max) {
            sender.value = sender.value.substring(0, max);
            event.keycode = 0;
            return false;
        }
        return true;
    }
    </script>
    <title></title>
    </head>
    <body>
    <textarea onkeyup="checkMaxLength(this, 10);" onkeypress="checkMaxLength(this, 10);"></textarea>
    </body>
    </html>
    
    #問題点:一瞬、超過分の文字が見えてしまう。
    2015年3月10日 16:23
    モデレータ