JavaScriptのif文の処理に関する質問

このQ&Aのポイント
  • JavaScriptのサンプルコードでif文の処理に関する質問があります。フラグの管理のために初期値に0をセットし、条件分岐を行っていますが、if文を抜けた後にどの処理に進むのか分かりません。
  • 質問のコードでは、myFlgが0の場合に「こんにちは」と表示する処理を行い、その後にmyFlgに1を代入しています。しかし、if文を抜けた後にどの処理に進むのかが不明です。
  • この質問では、if文を抜けた後にどの処理に進むかに関する疑問があります。初歩的な質問ですが、宜しくお願い致します。
回答を見る
  • ベストアンサー

javascriptに関しまして

javascriptに関しまして if文の処理に関してお聞きしたいことがあります。 <script language="JavaScript"> <!-- myFlg = 0; function myFunc(){ if(myFlg == 0){ document.myFormMeS.value = "こんにちは"; } myflg = 1; else{ document.myFormMeS.value = ""; myFlg == 0; } } //--> </script> <form name="myform"> <input type="text" size="20" name="myFormMeS"> <script language="JavaScript"> <!-- setInterval("myFunc()",500); // --> </script> </form> というサンプルコードの中で、フラグの管理をする際に 初期値として、myFlg = 0をセットしているのでこんにちはと 表示してからmyFlg に1を代入していますが、その後一度if文を抜けて、 もう一度if(myFlg == 0)の判定を行っているのでしょうか? それとも、そのままelse処理に進むのでしょうか・・・? if文を抜けた後にどこの判定に進むのかいまいちよく分かりません。 初歩的な質問になりますが、宜しくお願い致します。

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 このソースはそもそも間違えていませんか? (全角スペース入ってます) <script language="JavaScript"> <!--  myFlg = 0;  function myFunc(){   if(myFlg == 0){    document.myFormMeS.value = "こんにちは";   }   myflg = 1;   else{    document.myFormMeS.value = "";    myFlg == 0;   }  } //--> </script> 1. myflg = 1;の位置がおかしいです。 2. myflgという変数は無くmyFlg = 1;のはずです。 3. myFlg == 0;ではなくmyFlg = 0;でフラグの初期化です。 4. document.myFormMeS.valueではなくdocument.myform.myFormMeS.valueです。 これを踏まえて直すと <script language="JavaScript"> <!-- myFlg = 0; function myFunc(){ if(myFlg == 0){ document.myform.myFormMeS.value = "こんにちは"; myFlg = 1; } else{ document.myform.myFormMeS.value = ""; myFlg = 0; } } //--> </script> になります。 これで動きを見ればきちんと追えると思います。 myFlg == 0の判定でフォームにこんにちはをセットしてmyFlg=1とフラグを立てる。 500ミリ秒後に再度myFuncが呼ばれた際にはmyFlg == 0の判定は偽(false)となるためフォームに空白をセットしてmyFlg=0でフラグを初期化。 以降繰り返しによりフォームの内容が点滅しているように見える。

SUM1200
質問者

お礼

理解できました! myFlg = 1;の位置がおかしかったですね。 とても分かりやすい説明ありがとうございます。

関連するQ&A

  • フォームの値をjavascriptでsubmitする時に

    <form name="myForm" action="" id="myID" onsubmit="return false;"> <input type="hidden" name="v1" value="" /> </form> というようなフォームがあり、 <script language="javascript"> function submitTest(v) { document.myForm.v1.value = v; document.myForm.submit(); } </script> のような形でsubmitする際に、<form>の属性で指定したid="myID"って javascript関数内でどのようにすれば渡せるのでしょうか?? 何か質問がおかしかったらご指摘願います。

  • JavaScriptでの足し算処理について

    本日よりJavaScriptに取り組んでいますが、いきなり足し算の処理でつまずきました。 下記の様にdeta1に10を入れ、計算ボタンを押すとdeta2に25が入るような処理を行いたいのですが、10が文字として認識されてしまうらしく、deta2が1015になってしまいます。 かなり基本的なことだと思いますが、どうすればよいか教えてください。 <script language="JavaScript"> <!-- function func1(){ document.test.deta2.value=document.test.deta1.value+15; } //--> </script> <form name=test> <INPUT type="text" name="deta1"> <INPUT type=button value="計算" onClick=func1()> <INPUT type="text" name="deta2"> </form>

  • 2つのJavaSを使う場合・・・

    こんにちは、他の質問もさせていただいているのですが、こちらもお願いいたします! 私はホームページに関して素人なのですが、WEBで例文などをコピーしてきて利用させて頂いています。しかし元が素人なのでわからない事が多く・・・ 例えば、 <script language="JavaScript"><!-- function check() { txt = document.myFORM.TEST.value; n = txt.length; if (n > 10) alert("10文字以内にしてください"); } // --></script> </head><body><form name="myFORM"> <textarea rows="3" name="myTEXT" onChange="check()"></textarea> </form></body></html> こういうテキストボックの入力文字を規制するスクリプトと、 <SCRIPT language="JavaScript"> <!-- function Check(){ if(document.myform.TEST.value==""){ alert("コメントを入力してください。"); return false; } return true; } // --></SCRIPT> という未入力だった場合アラートを出すスクリプトを2つ使いたい時はどのように設定すればいいのでしょうか? <SCRIPT language="JavaScript"><!-- の下に両方書きますよね?で、両方とも function check() というのを使うようなのですが・・・。 素人で全くわかりません。やはり勉強しようかと思いますが、とりあえず、上記を ご存知の方、よろしくお願いいたします!

    • ベストアンサー
    • HTML
  • このJavaScriptはなんか早い・・・

    <html> <head> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 6.5.0.0 for Windows"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE>タイマー</TITLE> </head> <body> <script language="JavaScript"><!-- myCnt = 0; myTim = 0; function myGo(){ mySelect = document.myForm.myMenu.selectedIndex; myCnt = eval(document.myForm.myMenu.options[mySelect].value); myTim = setInterval("myTimer()",1000); } function myTimer(){ myCnt = myCnt-1; document.myForm.myFormSec.value = myCnt + " 秒"; if (myCnt == 0){ clearInterval(myTim); alert("制限時間を終了しました。"); } } // --></script> <CENTER> <form name="myForm"><select name="myMenu" size="1"> <option value="180">時間制限は? </option> <option value="600">10分 </option> <option value="300">5分 </option> </select> <input type="button" value="GO!" onclick="myGo()">                            あと<input type="text" size="15" name="myFormSec"> です。</form> </CENTER> <form> <center><input type="button" value="閉じる" onclick="window.close()"> </center> </form> </body> </html> 上のものを実行させると、なぜかスピードが早くなってしまいます。 どうすればいいのでしょう。 お願いします。

  • JavascriptのtimerIDの意味

    いつもお世話になっております。 現在、Javascriptの勉強をしており、その過程でカウントダウンタイマーを作成しています。 テキスト通りにsetTimeout()メソッドなどを使用しているのですが、timerIDの意味が理解できず困っております。 タイマーを識別するID番号ということはなんとなく理解できるのですが、下記コードのelse if (timerID)やtimerID=0とは何を意味しているのでしょうか。 if文の条件がtimerIDとはどういうことなのか。 timerIDの値を0にする必要性は何なのか。 教えてください。 <doctype! html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Javascript</title> <script type="text/javascript"> window.onload = init; function init(){ document.form1.start.onclick = start; document.form1.reset.onclick = stop; } var timerID; function start(){ count = parseInt(document.form1.time.value); if (count<=0){ count = 0; return; } else if (timerID){ count--; } document.form1.time.value=count; if (count==0){ clearTimeout(timerID); timerID = 0; alert("時間です"); return; } timerID = setTimeout("start()", 1000); } function stop(){ document.form1.time.value=0; if(timerID){ clearTimeout(timerID); timerID=0; } } </script> </head> <body> <h1>カウントダウンタイマー</h1> <form name="form1"> 時間<input name="time" type="text" size="3">秒<br> <input name="start" type="button" value="スタート"> <input name="reset" type="button" value="リセット"> </form> <script type="text/javascript"> </script> </body> </html>

  • フラグについて

     javascript初心者です。  タイマー作成などで使われる、「フラグ」ですが、よくわかりません。 myButton = 0; function myCheck(myFlg){ if (myButton==0){ myStart=new Date(); myButton = 1; document.myForm.myFormButton.value = "Stop!"; myInterval=setInterval("myCheck(1)",1); }else{ if (myFlg==0){ myButton = 0; document.myForm.myFormButton.value = "Start"; clearInterval( myInterval ); }     ・     ・      ・   ・・・onclick="myCheck(0)"> なぜ、『myButton = 0;』のフラグと『myCheck(myFlg)』のフラグが2つ必要なのでしょうか?1つじゃできないんでしょうか? と、レベルの低い質問ですが、よろしくお願いいたします。

  • 占いのスクリプトを書いたのですが

    先日よりJavaScriptの勉強をしていて、以下のスクリプトで、17時までは今日の運勢は?と表示して、17時以降は明日の運勢は?と表示したいのですが、うまく動きません。何処をどう直したら良いのでしょうか?  わかる方教えて下さい。よろしくお願いします。 <HTML> <HEAD> <TITLE>おみくじ</TITLE> </HEAD> <SCRIPT LANGUAGE="JavaScript"> <!--- function omikuji() { r=Math.round(Math.random()*4); if(r==1){ document.form_a.text1.value="ラッキー!大吉!";} else if(r==2){ document.form_a.text1.value="ほっ!中吉!";} else if(r==3){ document.form_a.text1.value="小吉!まぁまぁだね";} else if(r==4){ document.form_a.text1.value="末吉!こんなものかな";} else{ document.form_a.text1.value="凶・・気をつけないと";} } //---> <!-- acDate=new Date(); myHour=acDate.getHours(); // --> </SCRIPT> <BODY> <FORM NAME="form_a"> <INPUT TYPE="BUTTON" VALUE="おみくじ" onClick='omikuji()'> <INPUT TYPE="TEXT" if(myHour<=17){ VALUE="今日の運勢は?!"NAME="text1";} else if(myHour<=24){ VALUE="明日の運勢は?!"NAME="text1";} > </FORM> </BODY> </HTML>

  • Javascriptを短くしたい

    初歩的なことですみません。 Javascriptで表示/非表示を切り替えるものを作ろうと思うのですが、 以下のサンプル文のような形では、項目数が増えるとその分だけ どんどんJavascriptも長くなっていってしまいます。 Javascript文を簡潔にするには、どのように記述すればよいのでしょうか。 よろしくお願いします。 <script type="text/javascript"> <!-- function Hyo1(num) { if (num == 0) { document.getElementById("cont1").style.display="block"; } else { document.getElementById("cont1").style.display="none"; } } function Hyo2(num) { if (num == 0) { document.getElementById("cont2").style.display="block"; } else { document.getElementById("cont2").style.display="none"; } } // --> </script> <div id="cont1">ああああああ</div> <form> <input type="button" value="表示" onclick="Hyo1(0)"> <input type="button" value="非表示" onclick="Hyo1(1)"> </form> <form> <div id="cont2">いいいいいい</div> <input type="button" value="表示" onclick="Hyo2(0)"> <input type="button" value="非表示" onclick="Hyo2(1)"> </form>

  • javascriptを勉強し始めました

    それで簡単なアンケートを作りたいと思い、入力フォームを作って間違えている箇所があれば確認ボタンを押したときに入力に誤りがある項目をアラートで出し、そのアラートに誤っている項目をそのアラート一つにまとめて出したいのですが、出ません。わかないので質問させていただきました。よろしくお願いします。ソースになります。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>課題</title> <script language ="javascript"> <!-- function datachk(){ if(document.form1.last.value == "") { alert("・氏名(姓)が入力されていません。"); }else{ if(document.form1.last.value.match( /[^一-龠ァ-ヶぁ-ゞA-Z]+/ ) ){ alert("・氏名(姓)は、全角文字のみで入力して下さい。"); }else{ if(document.form1.first.value == "") { alert("・名前(名)が入力されていません。"); }else{ if(document.form1.first.value.match( /[^一-龠ァ-ヶぁ-ゞA-Z]+/ ) ){ alert("・名前(名)は、全角文字のみで入力して下さい。"); } } } } } //--> </script> </head> <body> <div align="center"> 情報入力 </div><br> <br> 以下に、情報を入力してください。<br> <br> <form name = "form1"> *氏名(姓): <input type = "text" name = "last" value = ""><br> (全角10字入力可)<br> *氏名(名): <input type = "text" name = "first" value = ""><br> (全角10字入力可)<br> *性別: <input type = "radio" name = "men" value = "男">男 <input type = "radio" name = "women" value = "女">女<br> <input type="button" value="回答" onClick="javascript:datachk();"><br> </form> </body> </html>

  • javascript confirmでFORM送信

    javascript confirmにて「この点数で良ければ送信する」というものを考えています。 この点数部分は変数になる予定であり、javascript内部で生成されます。 まずは、変数ではなく固定値として、javascriptの中にある数値を<form></form>の中に生成することを考えましたがいきなりつまずきました。 「100という数値を送信」するつもりだったのですが、うまく送信することが出来ません。 どこを修正すればいいかご教示いただきたくお願いいたします。 <html> <head> <title>submit</title> </head> <script language="javascript"> <!-- function frmSubmit() { var errFlag=true; if(errFlag==false) { return; } if(confirm("100点です。送信しますか?")) { document.frm.submit(); document.getElementById("plus").value ="100"; } else { } } //--> </script> <body> <form method="post" action="form.cgi" name="frm" target="_self"> <input type="HIDDEN" id="plus" value="" /><br /> <input type="button" value="send" onclick="frmSubmit();"> </form> </body> </html>