MailForm Proの入力チェックについて
MailForm Proはperlで作られた商用フリーの入力フォームです。詳しくは過去記事参照
https://www.messiahworks.com/archives/2454
フォームの入力制限機能もあるのですが、以下の4種類しかないです。
// data-charcheck=”digit” 数字のみ
// data-charcheck=”alphabet” 英語のみ
// data-charcheck=”digit_and_alphabet” 英語と数字のみ(記号含まず)
// data-charcheck=”kana” 全角カタカナのみ
例えば、番地を入力させる時には、「半角数字と半角ハイフン」のみに制限したい時は、自分でソースを修正しないといけません。
とはいえ、正規表現さえ分かっていれば、簡単です。
アラート文字列にも、「全角カナ」「半角数字」など半角・全角の指摘を入れてみました。
修正ファイル: mailformpro\add-ons\charactercheck.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
mfp.extend.event('check', function(obj){ if(obj.name != ""){ if((mfp.Elements[obj.name].type == "text" || mfp.Elements[obj.name].type == "textarea") && obj.getAttribute('data-charcheck') && obj.value != "" && obj.value != obj.defaultValue){ // data-charcheck="digit" 数字のみ // data-charcheck="alphabet" 英語のみ // data-charcheck="digit_and_alphabet" 英語と数字のみ(記号含まず) // data-charcheck="kana" 全角カタカナのみ // data-charcheck="digit_and_hyphen" 半角数字とハイフンのみ(番地用) // data-charcheck="digit_and_kana" 半角数字と全角カタカナのみ(住所用) if(obj.value.match(/[^0-9]/) && obj.getAttribute('data-charcheck') == 'digit') mfp.ExtendErrorMsg = '$name に半角数字以外の文字が入力されています。'; else if(obj.value.match(/[^A-Za-z]/) && obj.getAttribute('data-charcheck') == 'alphabet') mfp.ExtendErrorMsg = '$name に半角英字以外の文字が入力されています。'; else if(obj.value.match(/[^A-Za-z0-9]/) && obj.getAttribute('data-charcheck') == 'digit_and_alphabet') mfp.ExtendErrorMsg = '$name に半角英数字以外の文字が入力されています。'; else if(obj.value.match(/[^ァ-ヶー]/) && obj.getAttribute('data-charcheck') == 'kana') mfp.ExtendErrorMsg = '$name に全角カタカナ以外の文字が入力されています。'; else if(obj.value.match(/[^0-9\-]/) && obj.getAttribute('data-charcheck') == 'digit_and_hyphen') mfp.ExtendErrorMsg = '$name に半角数字と半角ハイフン以外の文字が入力されています。'; else if(obj.value.match(/[^0-9\-ァ-ヶー]/) && obj.getAttribute('data-charcheck') == 'digit_and_kana') mfp.ExtendErrorMsg = '$name に半角数字と全角カタカナ以外の文字が入力されています。'; } } } ); |
それにしても、全然コメントがない…。
異常なぐらい無いので、リリース前に削除しているのだろうか?