- ベストアンサー
テキストボックス入力を半角英数字に制限する
よろしくお願いします。 テキストボックスに入力される文字を、 半角英数字(英語の場合は大文字のみ)以外入力できないように制限したいのですが可能でしょうか? もしくは半角英数字以外が入力された場合アラートを出すようにしたいのですが。。。 また、文字数の制限も可能でしょうか? 第一希望) 12文字以内の半角英数大文字以外入力できないように入力制限する。 第二希望) 12文字以内の半角英数大文字以外入力の文字が入力されている状況でボタン(=CGI実行)を押すと警告のアラートが出る。 第三希望) 半角英数大文字以外入力できないように制限、もしくはアラート表示。 例) AAAA-1234567 ○(ハイフンを含め12文字以内の半角英数字) AAAA-123456789 ×(12文字以内でない) aaaa-1234567 ×(小文字が含まれている) 等 webサーバー・・・HP-UX web・・・IE6 開発端末・・・windows2000(Tera Term 使用) 情報をお持ちの方いらっしゃいましたら、 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
第二希望の条件について。 前提としてチェックするテキストボックスのnameがtxtであった場合の説明をします。 まず、次のようにform開始タグにname="fm"とonsubmit="return checkForm()"を追加します。 <form name="fm" action="********.cgi" method="post" onsubmit="return checkForm()"> 次に以下を<head>~</head>に貼り付けることで、JavaScriptによる送信前のチェックが可能です。 --------------------------------------- <script type="text/javascript"> <!-- function checkForm(){ var str = document.fm.txt.value; if (str.match(/[^A-Z\d\-]/)) { alert("半角英数字(大文字)しか入力できません"); return false; } else if (str.length > 12) { alert("12文字以内で入力してください"); return false; } } //--> </script> --------------------------------------- 「ハイフンを含め」と書いているので、ハイフンを入れても有効なようにしました。 また、12文字以内としか書かれていないので0文字でも警告が出ないようになっています。 もし、何も入力されていない場合でも警告を出すならば、次のようにしてください。 --------------------------------------- if (!str) { alert("何も入力されていません"); return false; } else if (str.match(/[^A-Z\d\-]/)) { alert("半角英数字(大文字)しか入力できません"); return false; } else if (str.length > 12) { alert("12文字以内で入力してください"); return false; } ---------------------------------------
その他の回答 (3)
- satosai
- ベストアンサー率0% (0/2)
単純にIME制御ではなくて?? <input type="text" style="ime-mode: disabled"> これなら半角英数しか入力できないテキストボックスになります。
お礼
ご回答ありがとうございます。 早速取り入れてみたいと思います。
- 665
- ベストアンサー率72% (18/25)
先頭にハイフンがあれば警告を表示させるならこれを追加するといいでしょう。 else if (str.charAt(0) == "-") { alert("先頭にハイフンは置けません"); return false; }
お礼
なるほど、ありがとうございます。
- wakame0729
- ベストアンサー率32% (245/765)
文字数制限だけでしたらmaxlengthで指定できます。文字種の制限はHTMLだけではできませんが(スタイルシートを使ってIMEの制御をする事はできます)JavaScriptを使ってこれを行うことができます。 JavaScriptを使って、指定文字種、文字数のチェックを行い、エラーでalertを表示するサブルーチンを作りonKeyUpイベントで呼び出せば良いかと思います。
お礼
早速のご回答ありがとうございます。 スタイルシートは使いたくありませんので、上記の方法を参考にしたいと思います。
お礼
早速のご回答ありがとうございます。 入力制限の方はこれを参考にさせていただきたいと思います。 文字数の方はテキストボックスのほうで文字制限しました。 ただ、先頭に「-」が入るのは避けたいのでもう少し試行錯誤してみたいと思います。