returnの戻り値について

このQ&Aのポイント
  • returnの戻り値が「true/false」とあるが、戻ってきたときはどこに入っているのか?
  • キーが押されたときに関数を呼び出し、returnで戻り値が「true/false」となる仕組み
  • キーボードの入力値に応じてtrue/falseを返すkeyCheck関数の役割
回答を見る
  • ベストアンサー

returnの戻り値について

以前の質問を見ていてひとつわからないことがあるのです。 内容をそのままコピーしたのですが、この場合、キーが押されたときに関数を呼び出し、 returnで戻り値が「true/false」とありますが、戻ってきたときはどこにtrue/falseが入っているのですか? <BODY> <FORM NAME="f" ACTION="UPDATE" METHOD="POST" TARGET="FRAME_D" onSubmit="return conf();"> <INPUT TYPE="TEXT" NAME="FM_KINGAKU" onKeyDown="return keyCheck(event.keyCode);" > <SCRIPT TYPE="text/javascript" SRC="./JS.SOURCE"></SCRIPT> <SCRIPT TYPE="text/javascript"> <!-- function keyCheck(keyCodes){ if((keyCodes >= 49 && keyCodes <= 57) || (keyCodes >= 96 && keyCodes <= 105) || keyCodes == 46 || keyCodes == 8) return true; else return false; } // --> </SCRIPT> </FORM> </BODY>

質問者が選んだベストアンサー

  • ベストアンサー
  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.2

>(1)returnをつけずに、onKeyDown="keyCheck(event.keyCode)"のみではkeyCheck(event.keyCode)自体にtrue/falseは入らないのでしょうか? 入りますよ。returnはonKeyDownにkeyCheck(event.keyCode)の値(戻り値)を返すためにあるので、値自体は入ってきます。 ただし、returnを書かないとonKeyDownに真偽値が返らないので処理されませんが・・・。 >(2)この結果をVBScriptで使うことはできるのでしょうか? > (例えば、keyCheck(event.keyCode)の戻り値が、trueであれば処理をし、falseであれば処理をしないなど。) VBScriptについてはWebでは扱ったことがないのですが、試して見たところちゃんと真偽値として認識しました。 これはご自分で試せばわかると思うのですが・・・。

snowsaab
質問者

お礼

お礼が遅くなってすみません。。。 自分でも試してみようと思います。 ありがとうございましたm(__)m

その他の回答 (1)

  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.1

returnで返された値はその関数自体に入ります。 keyCheck(event.keyCode)これ自体がtrue/falseです。 つまり結果的にonKeyDown="return true/false"となります。 つまり押したキーによってそのキーが有効の場合はonKeyDown="return true"となり 無効の場合はonKeyDown="return false"となります。

snowsaab
質問者

補足

ご返答、ありがとうございますm(__)m ちょっと突っ込んだ質問をよろしいでしょうか。 (1)returnをつけずに、onKeyDown="keyCheck(event.keyCode)"のみではkeyCheck(event.keyCode)自体にtrue/falseは入らないのでしょうか? (2)この結果をVBScriptで使うことはできるのでしょうか?  (例えば、keyCheck(event.keyCode)の戻り値が、trueであれば処理をし、falseであれば処理をしないなど。)

関連するQ&A

  • テキストフィールドの入力規則(数値チェック)

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=143226 を参考にさせていただいて、以下のコードで実行してみました。 =============================== <BODY> <FORM NAME="f" ACTION="UPDATE" METHOD="POST" TARGET="FRAME_D" onSubmit="return conf();"> <INPUT TYPE="TEXT" NAME="FM_KINGAKU" onKeyDown="return keyCheck(event.keyCode);" > <SCRIPT TYPE="text/javascript" SRC="./JS.SOURCE"></SCRIPT> <SCRIPT TYPE="text/javascript"> <!-- function keyCheck(keyCodes){ if((keyCodes >= 49 && keyCodes <= 57) || (keyCodes >= 96 && keyCodes <= 105) || keyCodes == 46 || keyCodes == 8) return true; else return false; } function conf(WK_LINEINDEX){ /* 省略 */ } // --> </SCRIPT> </FORM> </BODY> =============================== しかし、数値以外のキーを押しても何事もなかったかのように 入力できてしまうのです。 前の質問者のlovelypoohさんは解決されたみたいなんですが、 いったい何が違うのでしょう? onSubmit="return conf();" ってのと onKeyDown="return keyCheck(event.keyCode);" ってのが 同じFORMタグの中にある、とか関係あるのでしょうか?

  • 数値以外の入力をさせないようにした後・・・

    いつもお世話になっています。 ****************************************************************** <htm> <head> <script language=javascript> <!-- function checkNum() { c=String.fromCharCode(event.keyCode); if("0123456789".indexOf(c,0)<0)return false; return true; } //--> </script> </head> <body> <form> <input type="text" onKeyDown="return checkNum()"> <input type="submit"> </form> </body> </htm> ****************************************************************** 以上のソースでテキストボックス内に数値以外入力できないようにしました。 が、こうすると入力した値を消そうとしてもBackSpace・Deleteキーが使えないのです。 どうしたら入力制限をかけつつ、両キーを有効にできるのでしょうか。

  • JAVASCRIPTでINPUT

    HTMLとJAVASCRIPTとJSPを使ってシステム構築をしております。 --------------- <html> <head> <SCRIPT Language="JavaScript"> <!-- function send() { alert("<input type=text name=name2>"); } // --> </SCRIPT> </head> <body> <form onSubmit="send(); return false;"> <input type=text name=name1> <input type=submit> </form> </body> </html> --------------- 上記のコードでやりたいことは、 submitボタンが押されたときにJAVASCRIPTを呼び出し JAVASCRIPT上で文字を入力し次画面へ送信するような機能を作りたいと思っているのですが、本を見てもなかなか載っていません。 もしかしたらJAVASCRIPTだけではできないかもしれません。 JSPまたはPHPで出来る機能でも良いので教えてください。

  • 通し番号の変数を一括チェックするには?

    JavaScriptでフォームの入力値のチェックを行う プログラムを書いています。 OnSubmitで処理を行っているのですが、チェック対象の テキストボックスが大量に存在しているので、 なんとか効率良く処理できないでしょうか? if( !NumCheck(form.text1.value) || !NumCheck(form.text2.value) || !NumCheck(form.text3.value) || /* ・・・ */ !NumCheck(form.text100.value) ) これをforか何かで回せるとベストなのですが…。 PHPのように文字列を変数名に変換する方法など、 なにか良いアプローチがありましたらご教示願います。 問題の部分抽出したHTMLを下に載せておきます。 そのままでは動きませんが、雰囲気が伝わればと。 インデントがなくてすみません。 よろしくお願いいたします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <script type="text/javascript"> <!-- function submitCheck(form){ if( !NumCheck(form.text1.value) || !NumCheck(form.text2.value) || !NumCheck(form.text3.value) || /* ・・・ */ !NumCheck(form.text100.value) ) { alert('入力エラー'); return false; } return true; } function NumCheck(value){ var tmp = value.match(/[0-9]+/g); if(tmp != value) return false; return true; } //--> </script> </head> <body> <form name="form1" action="test.cgi" target=_self method="post" onSubmit="return submitCheck(this);"> <input type="text" name=text1> <input type="text" name=text2> <input type="text" name=text3> /* ・・・ */ <input type="text" name=text100> </form> </body> </html>

  • JavaScript動作仕様の変更!?

    以前は動作していたものが最近のIEパッチ(?)で動作しなくなった気がします。もし解決方法があれば教えて下さい! ------------------------------------- <HTML> <HEAD> <TITLE></TITLE> <SCRIPT type="text/javascript"> <!-- function test() { document.form.submit(); } function test2() { alert( "!!" ); return true; } --> </SCRIPT> </HEAD> <BODY> <FORM name="form" onSubmit="return test2()"> <INPUT type="button" value="おす" onClick="test()"> </FORM> </BODY> </HTML> ------------------------------------- 以前だと、JavaScriptでのsubmit()コマンドで、きちんとonSubmitイベントも動作していたハズなんですが、ここ数日でボタン部分を <INPUT type="submit" value="おす"> としないとonSubmitイベントが動作しなくなった様に思えます。ここ数日でWindowsUpdateした端末数台でチェックしましたが同様でした。

  • フォームのname値を配列にしてJavaScriptでフォームのチェックをする方法

    JavaScriptでフォームの半角数字のチェックをしたいのですが、 form内容をCGI(PHP)に渡すためname値を配列にしないといけないのですが、 以下のスクリプトだとエラーが出てしまいます。 *実際はif(isNaN~)と<input~>をループで書き出しており、行数が不特定なので それぞれ別のname値を使うことができない状態です。 <script language="JavaScript"> function check() { if(isNaN(document.form1.hoge[0].value)){ alert("値は半角数字で入力してください。"); return(false); } if(isNaN(document.form1.hoge[1].value)){ alert("値は半角数字で入力してください。"); return(false); } return(true); } </script> <form method="post" action="xxx.cgi" onSubmit="return check()" name="form1"> <input type="text" name="hoge[0]"> <input type="text" name="hoge[1]"> </form> 特にCGIに渡す必要がなければ <input type="text" name="hoge"> <input type="text" name="hoge"> としてやればチェックができるのですが、どうしても次の 処理があるためname値を配列にする必要があります。 解決方法がわかる方がおられましたらご教授ください。 以上よろしくお願いいたします。

  • 外部ファイルを読み込めない

    初めまして。いつも質問やその回答を読ませていただいて、参考にさせていただいてます。 javascriptで作った超簡単なプログラムが動かないんです。 どなたか、助けてください。(>_<) 以下、test.htmlとtest.jsを作って、試して見ているのですが、動かない理由が分からず苦しんでいます。 =============test.html============= <html> <head> <script type="text/javascript" language="javascript" src="./test.js" ></script> </head> <body> <table> <form name="form2" method="post" onSubmit="return check()"> <tr><td><input type="text" name="names" size="50"></td></tr> <tr><td><input type="submit" name="submit" value="予約"></td></tr> </form> </table> </body> </html> =============test.html============= =============test.js============= function check(){ names=document.form2.names; if(names.value == ""){ alert("お名前を入力してください。"); names.focus(); return false; } else return true; } =============test.js============= どちらも、同じディレクトリに入れています。safari、ieでも×です。 どなたか、教えていただけませんでしょうか。

  • 「利用規約の同意」複数のチェックボックスでアクセス制御

    どうしてもわからないので助けてくださいませ~~ 利用規約でチェックボックスにチェックが入ると 次のページへ進めるボタンをつけたページなのですが チェックボックスが1つなら下記でできたのですが 複数になった場合はどうしたらよいでしょうか?? 複数全てにチェックしないと次のページへ進めないようにしたいのです。 どうぞよろしくお願いいたします。 <script type="text/javascript"> function check(){ if(document.form.agree.checked == true){ return true; }else{ alert("利用規約に同意してください。"); return false; } } </script> <form action="***.html" method="post" name="form" onsubmit="return check();"> <input type="checkbox" name="agree" value="1"> <input type="image" src="***.gif" name="***" alt="***" border="0"> </form>

  • 未入力のラジオボタンに、alertを表示したい。

    過去問を見て、応用しようとしましたがうまくゆきません。 超初心者ですので・・・ すいません、質問させてください。 WinXP、IE6を使っています。 下記のソースコード(簡略化しています)で、未入力の場合テキストではalertが表示されるのですが、ラジオボタンでは表示されません。 どう記述すれば表示されるのでしょうか? お分かりの方、教えてください。 よろしくお願いします。 <html> <head> <title>お申し込み</title> <script language="JavaScript"> <!-- function checkSubmit() { if (document.form1.Name.value == "") { alert("お名前をご入力ください!"); return false; } if (confirm("この内容で送信します。\nよろしいですか?") == false) { return false; } return true; } //--> </script> </head> <form name="form1" method="post" action="http://www.000/" onSubmit="return checkSubmit()"> お名前:<input type="text" name="Name" size="20"> 男性<input type="radio" name="Seibetu" value="Man"> 女性<input type="radio" name="Seibetu" value="Woman"> <input type="submit" value="お申し込み"> </form> </body> </html>

  • checkbox の入力チェックのやり方について

    お世話になります。 フォームにて、 javascriptで、入力チェックをおこないたいと思っています。 チェックボックスについては、どれか選択が一つでもなければ、アラートで、文字を出したいと思いますが、うまくできません。 チェックボックスの入力確認の方法を教えてください。 よろしくお願いいたします。 現在作りかけのソースは、下記の通りです。 <html> <head><title>-</title></head> <body> <form method="post" action="" onsubmit="return form_Validator(this)"> <input type="text" name="a1" size="15" maxlength="12"> <BR> <input type="checkbox" name="a1001" value="1"> <input type="checkbox" name="a1002" value="1"> <input type="submit" value="登録" name="submit"> </form> <script Language="JavaScript"> <!-- function form_Validator(doc) { if ( doc.a1.value == "" ) { alert( "BAD" ); return false; } /* a1001かa1002のチェックボックスのチェックがなければアラート----*/ return (true); } //--> </script> </body> </html>

専門家に質問してみよう