フォームの全角カタカナチェックについて

1,920 views
Skip to first unread message

book...@gmail.com

unread,
Mar 15, 2017, 2:29:00 AM3/15/17
to a-blog cms forum
いつもお世話になっております。
坊奥と申します。

フォームで、必須チェックと全角カタカナのみ通すようにフォームチェックを追加したく、下記のように記述しております。
<input id="hurigana" name="hurigana" value="{hurigana}" type="text">
<input type="hidden" name="field[]" value="hurigana">
<input type="hidden" name="hurigana:v#required" id="hurigana-v-required">
<input type="hidden" name="hurigana:v#regex" value="^(\xe3(\x82[\xa1-\xbf]|\x83[\x80-\xb6|\xbc]|\x80\x80))+$" id="hurigana-v-regex">
<input type="hidden" name="hurigana:c" value="KV">
<div data-validator-label="hurigana-v-required" class="validator-result-{hurigana:v#required}">
       <span class="errtxt">全角カタカナでお名前をご入力ください。</span>
</div>
<div data-validator-label="hurigana-v-regex" class="validator-result-{hurigana:v#regex}">
       <span class="errtxt">全角カタカナでお名前をご入力ください。</span>
</div>

Firefoxですと問題なく動作するのですが、IE・Chromeで動作確認を行うと、次の確認画面へ遷移しません。(遷移ボタンを押下しても無反応)
記述方法が誤っていますでしょうか。

お教えいただけますと幸いです。
以上、よろしくお願いいたします。

伊藤淳

unread,
Mar 15, 2017, 4:07:54 AM3/15/17
to a-blog cms forum
お世話になっております。

以下のコードに変更 + phpのカスタマイズをお願いできますでしょうか。

<input type="hidden" name="hurigana:v#regex" value="^[ア-ン゛゜ァ-ォャ-ョー]+$" id="hurigana-v-regex">


/php/ACMS/Validator.php

function regex($val, $regex)
    {
        if ( empty($regex) ) return false;
        if ( empty($val) ) return true;

        //---------------
        // compatibility
        if ( '@' !== substr($regex, 0, 1) ) $regex  = '@'.$regex.'@u';  // u を追加

        return preg_match($regex, $val);
    }

よろしくお願いいたします。

book...@gmail.com

unread,
Mar 15, 2017, 5:09:59 AM3/15/17
to a-blog cms forum
伊藤様

いつもお世話になっております。
早急にお返事を頂戴しまして、ありがとうございました。

全角カタカナの件、ご指摘事項を反映して動作確認をさせていただいたところ、うまく動作することを確認いたしました。
また、本来は別トピックにする必要があるかと思いますが、同じフォームの内容になりますので、
引き続き質問させてください。

フォームオプションのメールチェックについてです。
必須入力ではないようにしたいのですが、mailオプションだけでも必須チェックがはしっているようで、Firefoxのみ入力しないと次の画面へ進めなくなっています。

こちらについてもあわせてご教授いただけないでしょうか。
                <input id="m_mail" name="m_mail" type="email" value="{m_mail}" />
                <input type="hidden" name="field[]" value="m_mail">
                <input type="hidden" name="m_mail:c" value="a">
                <input type="hidden" name="m_mail:v#email" id="m_mail-v-email">
                <div data-validator-label="m_mail-v-email" class="validator-result-{m_mail:v#email}">
                    <span class="errtxt">メールアドレスが正しくありません。</span>
                </div>

お手すきの際で結構ですので、お返事いただけますと幸いです。
よろしくお願いいたします。

伊藤淳

unread,
Mar 15, 2017, 10:21:30 PM3/15/17
to a-blog cms forum
お世話になっております。

以下調整いただけますでしょうか。

/js/library/validator.js の

'email': function ( val )
    {
        if ( !val ) {
            return true; // ここを trueに変更
        }
        return /^(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$/.test(val);
    },

よろしくお願いいたします。

book...@gmail.com

unread,
Mar 16, 2017, 12:15:29 AM3/16/17
to a-blog cms forum
伊藤様

いつもお世話になっております。
該当箇所を修正しましたが、うまく動作しませんでした。

また「Firefoxのみ動かない」と書かせていただいておりましたが、
「Firefoxのみ動作し、IE・Chromeの場合はうまく動作しない」が正しい内容です。
現象を正しくお伝えできておらず、申し訳ありません。

もしデフォルトのフォームオプションでうまく動作しないのでしたら、
別途jsを追加し、email形式のチェックを行うようにいたします。

以上、よろしくお願いいたします。

伊藤淳

unread,
Mar 16, 2017, 6:06:05 AM3/16/17
to a-blog cms forum
お世話になっております。

こちらですが、現象を再現できませんでした。Chrome, Firefoxとも正常に動作しております。
JavaScriptのバリデータでエラーメッセージが出ている感じでしょうか?

よろしくお願いいたします。

book...@gmail.com

unread,
Mar 17, 2017, 3:19:31 AM3/17/17
to a-blog cms forum
伊藤様

いつもお世話になっております。
はい、入力値が空なのがエラーになるようです。
メールアドレスを入力すると、確認画面へ遷移するようになります。

以上、よろしくお願いいたします。

伊藤淳

unread,
Mar 17, 2017, 5:19:35 AM3/17/17
to a-blog cms forum
お世話になっております。

弊社で別のものにも試してもらいましたが、再現ができなかったようです。
JavaScriptのキャッシュなどの可能性も考えられます。
一度キャッシュを削除してお試しいただけますでしょうか。

よろしくお願いいたします。

book...@gmail.com

unread,
Mar 21, 2017, 3:02:09 AM3/21/17
to a-blog cms forum
伊藤様

いつもお世話になっております。
坊奥です。

ご回答頂戴しまして、ありがとうございました。
何度かキャッシュを削除しましたところ、IEやChromeでも動くことを確認できました。
大変お手数をおかけし、申し訳ありませんでした。

引き続きどうぞよろしくお願いいたします。
以上、よろしくお願いします。
Reply all
Reply to author
Forward
0 new messages