以下は、いくつもある検索フォームの中のテキストボックスの一つです。
ここに、次のエラーチェックを仕込みたいのですが。
(1) 17で始まる8桁数字以外はアラートを出す。NULLもダメ。
(2) 半角数字以外が入力されたときは、フォーカスが離れた時アラートを表示NULLはOK。
(3) ここに示していないその他のフォームを含め、一個でも上記エラーがあったら
検索ボタン押下時にアラートを出し、POSTを許可しない。
いろいろエラーになったり、(1) ができてなかったりで、すみませんが
完璧にするためのアドバイスいただけないでしょうか。IE6オンリーで十分です。
<html>
<head>
<script type="text/javascript">
function NullCheck() {
if ( document.query.numberform.value=="" ) {
alert( "必ず17で始まる半角数字8桁で指定してください。\n例:17910031" );
return 1;
}
return false;
}
function NumbCheck() {
var str = document.query.numberform.value;
if( str.match( /[^0-9]+/ ) ) {
alert("不正な値がみつかりました。");
return 1;
}
return 0;
}
/* 全部チェック */
function AllCheck() {
var check = 0;
check += NullCheck01();
check += nmck09();
if( check > 0 ) {
return false;
}
return check;
}
</script>
</head>
<body>
<form method="post" action="list.php" target="list" id="query" name="query">
<input value="17000000" size="10" type="text" name="numberform" onblur="NumbCheck();NullCheck();">から
<input type="submit" name="exec" value="検索" onclick="return AllCheck();">
</form>
</body>
</html>
No.1ベストアンサー
- 回答日時:
とりあえずこんな感じですか?
<script language="javascript">
function checkForm(num){
var n=document.getElementById("numberform");
if(num=="bler" && n.value.length==0){
return false;
}
if( n.value.length!=8 || n.value.substr(0,2)!="17"){
alert( "必ず17で始まる半角数字8桁で指定してください。\n例:17910031" );
n.focus();
return false;
}
if( n.value.match( /[^0-9]+/ ) ) {
alert("不正な値がみつかりました。");
n.focus();
return false;
}
return true;
}
</script>
<form method="post" action="list.php" target="list" id="query" name="query" onSubmit="return checkForm('all');">
<input value="17000000" size="10" type="text" name="numberform" onblur="checkForm('bler')">から
<input type="submit" name="exec" value="検索">
</form>
この回答への補足
すみません、ご提示いただいたものを以下のようにアレンジしてみたのですが
「必ず17で始まる・・」のalertが無限ループしてしまいます。
何が誤ってますでしょうか・・・
<html>
<head>
<script type="text/javascript">
function nmck09(num1) {
var n=document.getElementById("more");
if(num1=="bler1" && n.value.length==0){
return 1;
}
if( n.value.length!=8 || n.value.substr(0,2)!="17"){
alert( "必ず17で始まる半角数字8桁で指定してください。\n例:17910031" );
n.focus();
return 1;
}
if( n.value.match( /[^0-9]+/ ) ) {
alert("不正な値がみつかりました。");
n.focus();
return 1;
}
return true;
}
function nmck10(num2) {
var n=document.getElementById("less");
if(num2=="bler2" && n.value.length==0){
return 1;
}
if( n.value.length!=8 || n.value.substr(0,2)!="17"){
alert( "必ず17で始まる半角数字8桁で指定してください。\n例:17910031" );
n.focus();
return 1;
}
if( n.value.match( /[^0-9]+/ ) ) {
alert("不正な値がみつかりました。");
n.focus();
return 1;
}
return true;
}
// Submit時に全部チェック
function AllCheck() {
var check = 0;
check += nmck09();
check += nmck10();
if( check > 0 ) {
return false;
}
return check;
}
</script>
</head>
<body>
<form method="post" action="list.php" target="list" id="query" name="query">
<input value="" size="10" type="text" name="more" onblur="nmck09();">から
<input value="" size="10" type="text" name="less" onblur="nmck10();">まで
<input type="submit" name="exec" value="検索" onclick="return AllCheck();">
</form>
</body>
</html>
yambejpさん、いつもお世話になっております。
御礼遅くなってすみませんでした。
質問の仕方が悪く、まずはお詫びもうしあげます。
さて、ご教示のスクリプトをためさせていただきましたが、
実にいい感じに動作します。
本番環境にも組み込んでみて、また要望などが
あったら追加質問させてください。
たぶん完璧だと思われますので、その際は締め切らせていただきます。
以上、取り急ぎ御礼まで
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
return trueとreturn falseの用...
-
ドラッグ&ドロップ禁止について
-
slickのレスポンシブ > center...
-
半角英数字のみの入力にエラー...
-
IEでDOMが作成出来ない
-
ピリオド区切りで 4桁.2桁.2桁 ...
-
リロードしないようにするには
-
値をチェックしたい
-
ラジオボタンとセレクトボック...
-
チェックボックス付きのテーブ...
-
1つのページにformを2つ設置。2...
-
クリックさせたいが、click()が...
-
プルダウン選択を変更すると、...
-
新しくフォルダを作成したい
-
onClickとsubmitの処理順序
-
ラジオボタンと連動して文字列...
-
javascriptで二重送信防止
-
チェックボックスのON/OFFでVal...
-
jQueryで設定したイベントハン...
-
マイナスなら赤字で表示したい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
return trueとreturn falseの用...
-
slickのレスポンシブ > center...
-
COBOLの数字チェック
-
コピペを禁止するtextarea
-
JavaScriptde途中で、「exit」...
-
未入力のラジオボタンに、alert...
-
ラジオボタンのNullチェック
-
テキストボックスに数字しか入...
-
数式から不要なカッコを取り除...
-
半角英数字のみの入力にエラー...
-
フォームの入力チェックをする...
-
変数の値によってsubmit後の動...
-
ツリービューのチェックボック...
-
ドロップダウンリストボックス...
-
ドラッグ&ドロップ禁止について
-
テキストボックスをEnterキーで...
-
入力された日付の正規表現の仕...
-
Visual Studioのデザインでの非...
-
正規表現で複数マッチ条件で悩...
-
度胸試しのJavaScript
おすすめ情報