• 締切済み

javascriptの動作で困ってます。

動作不良が三箇所あります。 プログラムに詳しい方がいらっしゃいましたら原因を教えて下さい。 ・未入力の質問をアラートで一括表示させたいのですが、 (3)のテキストエリアの箇所が未入力なのにアラートに表示できません。 判定のtrueとfalseを逆にして試すと、(3)のアラートは表示されるものの、記入しても アラートが出続けます。 ・1度しか指定していないにも関わらず同じ内容の警告アラートが2回出てしまう原因が分かりません。 ・入力した項目や選択した項目に関しては未入力項目のアラートとは別のアラートを用意してvalueの値をアラートで一括表示させたいのですが、関数を定義しているにも関わらず、関数が定義されていないとエラーメッセージが帰ってきて、表示されません。 ソースコードは以下になります。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> function check(){ var msg = ""; var msg2 = ""; var str = document.form.id.value; var str2 = document.form.pass.value; if (str.match(/[^0-9]+/)) { alert("客番号は数字のみ"); } if (str.length>5) { alert("客番号は4~5桁"); } if(str.length<4){ alert("客番号は4~5桁"); } if(str==""){ msg += "客番号が未入力です。\n"; }else{ msg2 += document.form.id.value; } if(str2==""){ msg += "パスワードが未入力です。\n"; }else{ msg2 += document.form.pass.value; } if(radioCheck()==false){ msg += "(1)が未入力です。\n"; } if(checkboxCheck()==false){ msg += "(2)が未入力です。\n"; } if(textareaCheck()==false){ msg += "(3)が未入力です。\n"; } if(selectCheck()==false){ msg += "(4)が未入力です。\n"; } if(msg != ""){ //メッセージを出力 alert(msg); } if(radioCheck()==true){ msg2 += document.form.eng.value ; } if(checkboxCheck()==true){ msg2 += document.form.lang.value ; } if(txtareaCheck()==true){ msg2 += document.form.opinion.value ; } if(selectCheck()==true){ msg2 += document.form.age.value ; } if(msg2 != ""){ //メッセージを出力 alert(msg2); } } function radioCheck(){ var count = 0; var eng=document.getElementsByName("eng"); for(var i=0;i<eng.length;i++){ if(eng[i].checked){ count++; } } if(count != 0){ return true; } else{ return false; } } function checkboxCheck(){ var count = 0; var checklist=document.getElementsByName("lang[]"); for(var i= 0;i<checklist.length;i++){ if(checklist[i].checked){ count++; } } if(count != 0){ return true; } else{ return false; } } function textareaCheck(){ var textarea=document.getElementById("demand").value; if(textarea!=""){ return true; } else{ return false; } } function selectCheck(){ var selectValue=document.getElementById("age").value; if(selectValue!="選択されていません"){ return true; } else{ return false; } } </script> </head> <body> <form action="http://www" method="post" name="form"onSubmit="return check()"> <h1>アンケート</h1> <p><label>客番号:<input type="text" name="id"></label></p> <p><label>パスワード:<input type="password" name="pass"></label></p> <h2>(1)</h2> <p>食べたいですか?<br> <br> <input type="radio" name="eng" value="yes"> はい <input type="radio" name="eng" value="neither"> どちらでもない <input type="radio" name="eng" value="no"> いいえ </p> <h2>(2)</h2> <p>食べたい物<br> <br> <input type="checkbox" name="lang[]" value="apple"> りんご <input type="checkbox" name="lang[]" value="banana"> バナナ <input type="checkbox" name="lang[]" value="pasta"> パスタ <input type="checkbox" name="lang[]" value="pizza"> ピザ <input type="checkbox" name="lang[]" value="supu"> スープ </p> <h2>(3)</h2> <p>意見(自由記述)<br> <textarea id="demand" name="opinion" cols="40" rows="4" maxlength="20"> </textarea> </p> <h2>(4)</h2> <p> 年齢を選択 <select id="age" name="age"> <option selected value="選択されていません">以下から選択</option> <option value="10~19才">10~19才</option> <option value="20~29才">20~29才</option> <option value="30~39才">30~39才</option> <option value="40~49才">40~49才</option> <option value="50~59才">50~59才</option> <option value="60~69才">60~69才</option> <option value="70才~">70才~</option> </select> </p> <p> <input type="submit" name="button" value="送信" onclick="check();"> <input type="reset" value="クリア"> </p> </body> </form> </html>

みんなの回答

  • yelser
  • ベストアンサー率72% (8/11)
回答No.2

Javascriptが途中で落ちてますね。 流し読みして気になったところを直すと、IE、Firefox、Chromeで動作確認が取れました。 そもそもValueを呼びに行かずに数字じゃダメなのかとか、JSONにまとめたりしなくていいのかとか思いますが。 以下、改変後ソースです。 /////////////////////////////////////////////////// <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> function check() { var msg = ""; var msg2 = ""; var str = document.form.id.value; var str2 = document.form.pass.value; if (str.match(/[^0-9]+/)) { alert("客番号は数字のみ"); return false; } else if (str.length > 5 || str.length < 4) { alert("客番号は4~5桁"); return false; } if (str === "") { msg += "客番号が未入力です。\n"; } else { msg2 += document.form.id.value; } if (str2 === "") { msg += "パスワードが未入力です。\n"; } else { msg2 += document.form.pass.value; } var val;//ここに値を格納しています if ((val = radioCheck()) === false) { msg += "(1)が未入力です。\n"; } else { //どこにアクセスしてるの? msg2 += document.form.eng.value; msg2 += "ちなみに内容は" + val + "でした。"; } if ((val = checkboxCheck()) === false) { msg += "(2)が未入力です。\n"; } else { //そもそもlang[]の間違い msg2 += document.form.lang.value; msg2 += "ちなみに内容は" + val + "でした。"; } if (textareaCheck() === false) { msg += "(3)が未入力です。\n"; } else { msg2 += document.form.opinion.value; } if (selectCheck() === false) { msg += "(4)が未入力です。\n"; } else { msg2 += document.form.age.value; } if (msg !== "") { //メッセージを出力 alert(msg); return false; } if (msg2 !== "") { //メッセージを出力 alert(msg2); } return true; } function radioCheck() { var count = 0; //アクセスの仕方が変わった? var eng = document.getElementsByName("eng"); for (var i = 0; i < eng.length; i++) { if (eng[i].checked) { //Checkboxは一つだけしかチェックされない return eng[i].value; count++; } } if (count !== 0) { return true; } else { return false; } } function checkboxCheck() { var count = 0; var checkbox_value = ""; var checklist = document.getElementsByName("lang[]"); for (var i = 0; i < checklist.length; i++) { if (checklist[i].checked) { checkbox_value += checklist[i].value; count++; } } if (count !== 0) { return checkbox_value; return true; } else { return false; } } function textareaCheck() { var textarea = document.getElementById("demand").value; if (textarea !== "") { return true; } else { return false; } } function selectCheck() { var selectValue = document.getElementById("age").value; if (selectValue !== "選択されていません") { return true; } else { return false; } } </script> </head> <body> <form action="http://localhost" method="post" name="form" onsubmit="return check();"> <h1>アンケート</h1> <p><label>客番号:<input type="text" name="id" required></label></p> <p><label>パスワード:<input type="password" name="pass" required></label></p> <h2>(1)</h2> <p> 食べたいですか?<br> <br> <input type="radio" name="eng" value="yes" required> はい <input type="radio" name="eng" value="neither"> どちらでもない <input type="radio" name="eng" value="no"> いいえ </p> <h2>(2)</h2> <p> 食べたい物<br> <br> <input type="hidden" name="lang" value="langというnameは存在しない。"> <input type="checkbox" name="lang[]" value="apple"> りんご <input type="checkbox" name="lang[]" value="banana"> バナナ <input type="checkbox" name="lang[]" value="pasta"> パスタ <input type="checkbox" name="lang[]" value="pizza"> ピザ <input type="checkbox" name="lang[]" value="supu"> スープ </p> <h2>(3)</h2> <p> 意見(自由記述)<br> <textarea id="demand" name="opinion" cols="40" rows="4" maxlength="20" required></textarea> </p> <h2>(4)</h2> <p> 年齢を選択 <select id="age" name="age" required> <option selected value="選択されていません">以下から選択</option> <option value="10~19才">10~19才</option> <option value="20~29才">20~29才</option> <option value="30~39才">30~39才</option> <option value="40~49才">40~49才</option> <option value="50~59才">50~59才</option> <option value="60~69才">60~69才</option> <option value="70才~">70才~</option> </select> </p> <p> <input type="submit" name="button" value="送信" onclick=""> <input type="reset" value="クリア"> </p> <!-- body と form のとじタグが逆 --> </form> </body> </html>

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.1

onclickとonsubmitでclick()が走るようになっていますので、どちらかだけでいいです。 また、check()でどれかのalertが走った時はreturn false;するという制御を加えましょう。

choppppp
質問者

補足

ご解答有難う御座います。 おかげ様で2回アラートが出ることがなくなりました。 return false;を返したのですが、未だにvalue値が新たなウィンドウでアラートとして表示されません。 (3)の質問内容のアラート表示も上手くいかないのでお時間ありましたら補足説明宜しくお願いします。

関連するQ&A

  • javascriptについて

    function df(){ document.ad.ad1.value=500; } function df2(a){ var sty=a.ad2.selectedIndex; a.ad3.value=eval(a.ad1.value)*eval(a.ad2.options[sty].value); } function df3(){ var s1=document.ad.ad3.value; var s2=document.ad.ad4.value; var fv=s1+"円\n"+ s2+"様"; var don=confirm(fv); } function df4(){ var p=0; if(document.ad.ad4.value==""){ p=1; } if(p){ alert("記入漏れ"); return false; } else{ return true; } } --> </script> </head> <body> <form action="#" method="POST" name="ad"> <p>ラーメン<input type="text" soze="20" value="500" name="ad1" onChange="df()">円</p> <p><select name="ad2" onChange="df2(this.form)"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> 個 </select> </p> <p>合計<input type="text" size="20" name="ad3">円</p> <p>備考:<input type="text" size="20" name="ad4"></p> <p><button onClick="df3();df4();"><img src="rtp/migi.jpg"></button></p> </form> </body> </html> 内容に間違いがあっても データーを送ってしまいます。 何故なんでしょうか?

  • 2つのjavascriptを組み合わせたい

    フォームメール用の2つのjavascriptがあります。 ●2重送信防止とデータ送信後指定ページへ遷移するjavascript ●テキストボックスが空欄だった時にアラートを表示するjavascript の2つです。 この2つを組み合わせようとしたのですが、うまく動きません。 ご指導いただきたくお願いいたします。 *************************************************** 【●2重送信防止とデータ送信後指定ページへ遷移するjavascript】【動きます】 送信ボタン押下後、2重送信を防止しながら、データ送信後は「location.href = "finish.html"」でfinish.htmlを表示します。 <script type="text/javascript" src="js/jquery.js"></script> <script> jQuery(function($) { $('#form1').submit(function(event) { // HTML送信キャンセル event.preventDefault(); //フォーム要素取得 var $form = $(this); // 送信ボタンを取得 // (後で使う: 二重送信防止) var $button = $form.find('button'); // 送信 $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: $form.serialize() + '&delay=1', timeout: 10000, // 送信前 beforeSend: function(xhr, settings) { // ボタン無効二重送信防止 $button.attr('disabled', true); }, // 応答後 complete: function(xhr, textStatus) { // ボタン有効再送信許可 $button.attr('disabled', false); }, // 通信成功処理 success: function(result, textStatus, xhr) { // 入力値初期化 $form[0].reset(); location.href = "finish.html"; }, // 通信失敗処理 error: function(xhr, textStatus, error) { alert('retry');} }); }); }); </script> <form name="form1" id="form1" method="POST" name="form1" action="insert.php"> <input type="text" name="tel" value="" /> <input type="text" name="fax" value="" /> <input type="submit" value="送信A"> </form> *************************************************** 【●テキストボックスが空欄だった時にアラートを表示するjavascript】【動きます】 テキストボックスが空欄だったらアラートを表示します。 <script> function check3() {   var tel3 = document.form1.tel.value;   var fax3 = document.form1.fax.value;   var isValid = true;   if (!tel3) {     alert("電話未入力");     isValid = false;   }   if (!fax3) {     alert("FAX未入力");     isValid = false;   }   if (!isValid) {     return;   }   document.form1.submit(); } </script> <form name="form1" id="form1" method="POST" name="form1" action="insert.php"> <input type="text" name="tel" value="" /> <input type="text" name="fax" value="" /> <input type="submit" value="送信B" onclick="check3();"> </form> *************************************************** 【上記の2つを組み合わせてみました。】【動きません】 テキストボックスが空欄だったらアラートを表示しながら2重ボタン排除&finish.htmlに遷移というものです。 【結果】 「問題なく動くjavascript」2つを単純に組み合わせただけなのですが、 finish.htmlに遷移せずinsert.phpが表示されます。ご指導宜しくお願いします。 <script type="text/javascript" src="js/jquery.js"></script> <script> jQuery(function($) { $('#form1').submit(function(event) { event.preventDefault(); var $form = $(this); var $button = $form.find('button'); $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: $form.serialize() + '&delay=1', timeout: 10000, beforeSend: function(xhr, settings) { $button.attr('disabled', true); }, complete: function(xhr, textStatus) { $button.attr('disabled', false); }, success: function(result, textStatus, xhr) { $form[0].reset(); location.href = "finish.html"; }, error: function(xhr, textStatus, error) { alert('retry');} }); }); }); </script> <script> function check3() {   var tel3 = document.form1.tel.value;   var fax3 = document.form1.fax.value;   var isValid = true;   if (!tel3) {     alert("電話未入力");     isValid = false;   }   if (!fax3) {     alert("FAX未入力");     isValid = false;   }   if (!isValid) {     return;   }   document.form1.submit(); } </script> <form name="form1" id="form1" method="POST" name="form1" action="insert.php"> <input type="text" name="tel" value="" /> <input type="text" name="fax" value="" /> <input type="submit" value="送信B" onclick="check3();"> </form>

  • javascriptについて

    <script type="text/javascript"> <!-- function df(){ var scr=100; if(document.ad.y.checked){ var sty=document.ad.a; for(var i=0;i<3;i++){ if(sty[i].checked){ scr+=20+10*i; break; } } } document.ad.ad1.value=scr; } --> </script> </head> <body> <form action="#" method="POST" name="ad"> <h4>毎日歯を磨きますか?</h4> <p><input type="checkbox" name="y" value="">はい<br> <input type="checkbox" name="n" value="">いいえ</p> <h4>何回</h4> <p>1回<input type="radio" name="a" value=""><br> 2回<input type="radio" name="a" value=""><br> 3回<input type="radio" name="a" value=""></p> <p>何<input type="text" size="20" name="ad1">点</p> <p><input type="button" value="配点" onClick="df()">&nbsp;<input type="reset" value="リセット"></p> </form> </body> </html> プログラムとしては成功しているんですが 解らないところが for(var i=0;i<3;i++) のところです。ラジオボタンに添え字を使って計算をしているという プログラムなのでしょうが たとえばlengthではなくあえて数字を入れてるのは 配列ではないからでしょうか? もう一点 formをつかって button やimage などを使うと 間違いを指摘してもデーターが流れて言ってしまいます。 return falseなど工夫はしてますが データーをtextに入っている文面を消さずに修正させるいい方法はありませんか お願いします。

  • javascript 要素取得

    htmlでチェックボックスを作り、その値をjavascriptで取得したいと思い、 下記のようなプログラムを書きました。 セレクトボックスから複数選択できるようにしたいのですが、 表示されるのは複数選んだ際に一番初めに選択したものだけです。  例) 「あああ」と「いいい」を選ぶと「あああ」のみ表示される。 しかし、これを「あああ.いいい」としたいのです。 できれば、 「あああ  いいい」 と改行できるといいです。 formの中にたくさんの項目があるため、 forのところがうまくいっていないのでしょうか? どなたかよろしくお願いします。 javascript側 function checkbox(){  var str="";  for(i=0;i<document.form1.elements.length;i++){   if(document.form1.elements[i].checked){     if(str != "") str = str + ".";     str = str + document.form1.document[i].value;   }  }  if(str == ""){   alert("入力してください");   return false;  }else{   document.form1.submit();  } } HTML側 <form action="<%=遷移先ページ%>" method="post" name="form1"> <select 複数> <input 複数> <input type="checkbox" name="document" value="・あああ"/>あああ <input type="checkbox" name="document" value="・いいい"/>いいい <input type="checkbox" name="document" value="・ううう"/>ううう <input type="submit" value="Submit" onclick="return checkbox();">

  • javascript ブラウザ IE動作しません。

    よろしくお願いします。 下記記載の javascript なのですが、 ブラウザ IE のみ動作しません。 (Chrome、Firefox、Opera、Safariでは動作するのですが、、、) どなたかプログラムに詳しい方、教えてください。 【仕様】 自動で金額が計算されるサイズオーダー見積りフォーム。 セレクトタグから商品の種類を選択 ↓ テキストフィールドより、縦と横サイズの(数値)を入力 ↓ 金額計算ボタンを押すとサイズにあわせた金額が自動で計算される 【問題点】 金額計算ボタン onClickを押しても ブラウザIE のみ動作しない(計算されない) それ以外の alertなどのscriptは IEでも実行されるが計算のscriptが実行されない。 コード記載↓ --- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>JavaScript Sample</title> </head> <body> <h1>サイズオーダー 金額見積フォーム</h1> <form name="mainForm"> <select name="field1"> <option value="">商品の種類を選択してください</option> <option value="12000">マットA</option> <option value="16700">マットB</option> <option value="16300">マットC</option> </select> <p>※サイズをcm(センチメートル)で入力して下さい。</p> <input type="text" name="field2" maxlength="4" placeholder="たて">cm<br> <input type="text" name="field3" maxlength="4" placeholder="よこ">cm<br> <table> <tr> <td><input type="button" value="金額計算" id="keisanbutton" onClick="return check()"></td> <td><output name="totle" id="totle"></output>円(税抜き・送料別)</td> </tr> </table> </form> <script type="text/javascript"> function check(){ var flag = 0; var totalPrice = 0; var text1 = document.mainForm.field2.value; var text2 = document.mainForm.field3.value; var price = document.mainForm.field1.options[document.mainForm.field1.selectedIndex].value; var option = document.mainForm.field1.options; if( option[0].selected ){ alert('商品の種類を選択してください'); // 種類が選択されていない場合は警告ダイアログを表示 return false; // 計算を中止 } if(text1.match(/[^0-9]+/)){ // 入力チェック 数値かどうか flag = 1; } else if(text2.match(/[^0-9]+/)){ // 入力チェック 数値かどうか flag = 1; } if(flag){ alert('数字以外が入力されています(半角数字でご入力下さい)'); // 数字以外が入力された場合は警告ダイアログを表示 return false; // 計算を中止 } if(!text1){ alert('サイズを入力してください'); // 入力されていない場合は警告ダイアログを表示 return false; // 計算を中止 } if(!text2){ alert('サイズを入力してください'); // 入力されていない場合は警告ダイアログを表示 return false; // 計算を中止 } if(document.mainForm.field2.value!==""&&( isNaN(text1) || text1<2 || text1>200) ){ // 数値の入力制限 alert("たてのサイズは2cm~200cmまでとなります。(50cm~200cmまでの数値でご入力下さい)");// 制限した入力数値外なら警告ダイアログを表示 return false; // 計算を中止 } if(document.mainForm.field3.value!==""&&( isNaN(text2) || text2<2 || text2>2000) ){ // 数値の入力制限 alert("よこのサイズは2cm~2000cmまでとなります。(50cm~2000cmまでの数値でご入力下さい)"); // 制限した入力数値外なら警告ダイアログを表示 return false; // 計算を中止 } else{ //return true; // 計算を実行 totalPrice += Math.round(text1 * text2 * price / 10000); } document.getElementById("totle").value = totalPrice } </script> </body> </html> --- 優れたSE・プログラマーの方、お助け願います m(__)m

  • javascriptの計算結果をweb上に表示

    WEB上で入力した数値から複数の計算をさせ、それをフォームからcgiに送るjavascriprを組みたいと思っています。 【現在保有のスクリプト】 下記のスクリプト1では、text1 text2 欄に数値を入力した後、「計算」ボタンを押し、送信ボタンを押すと、計算結果をcgiに送ることが可能です。 (下記の場合は、「入力数値の和」と「積」の2つの数値の送信する) 【やりたいこと】 text1 text2 欄に数値を入力した後、「計算」ボタンを押したあとに、「和と積がブラウザ上に表示され、確認した後に「送信ボタン」を押せるようにしたい。 ということで、修正したのがスクリプト2です。 【質問事項】 スクリプト2では、スクリプト1をベースに javascript上に msg.innerHTML = msg; msg2.innerHTML = msg2; を加え、 HTML上に <p id="msg"></p> <p id="msg2"></p> を加えていますが、これでは動きません。 上記に加え function readText() { var text1 = document.getElementById(""); などのパーツを入力する必要があるはずだと思うのですが、いろいろな場所に試行錯誤しておりますが、うまくいきません。 ご教示いただきたくお願いいたします。 【スクリプト1】************************************************ <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>test</title> <script type="text/javascript"> <!-- //@cc_on document./*@if(1) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'click', function( evt ) { var t = evt./*@if(1) srcElement @else@*/ target /*@end@*/ var v1, v2, msg, sum, msg2, sum2; if( t.type == 'button' && t.name == 'calc' && t.form.id == 'form2' ) { v1 = t.form.elements['text1'].value; v2 = t.form.elements['text2'].value; if ( isNaN( v1 ) || v1 == '' || isNaN( v2 ) || v2 == '' ) { msg = '数字以外の文字が入ってます'; } else { sum = parseFloat( v1 ) * parseFloat( v2 ); msg = '積は、' + sum + 'です'; sum2 = parseFloat( v1 ) + parseFloat( v2 ); msg2 = '和は、' + sum2 + 'です'; } t.form.elements['plus'].value = msg; t.form.elements['plus2'].value = msg2; } }, false ); //--> </script> </head> <body> <form action="form30.cgi" method="post" name="form2" id="form2"> <fieldset> <input type="text" id="text1" name="text1" size="10" maxlength="10" />+ <input type="text" id="text2" name="text2" size="10" maxlength="10" /> <input type="button" value="計算" name="calc" /> <br> <input type="hidden" name="plus" value=""> <input type="hidden" name="plus2" value=""> <input type="submit" value="送信" /> </fieldset> </form> </body> </html> **************************************************************** 【スクリプト2】上記を改造しweb上で計算結果を表示させたい******** <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>test</title> <script type="text/javascript"> <!-- //@cc_on document./*@if(1) attachEvent( 'on' + @else@*/ addEventListener( /*@end@*/ 'click', function( evt ) { var t = evt./*@if(1) srcElement @else@*/ target /*@end@*/ var v1, v2, msg, sum, msg2, sum2; if( t.type == 'button' && t.name == 'calc' && t.form.id == 'form2' ) { v1 = t.form.elements['text1'].value; v2 = t.form.elements['text2'].value; if ( isNaN( v1 ) || v1 == '' || isNaN( v2 ) || v2 == '' ) { msg = '数字以外の文字が入ってます'; } else { sum = parseFloat( v1 ) * parseFloat( v2 ); msg = '積は、' + sum + 'です'; sum2 = parseFloat( v1 ) + parseFloat( v2 ); msg2 = '和は、' + sum2 + 'です'; } t.form.elements['plus'].value = msg; t.form.elements['plus2'].value = msg2; msg.innerHTML = msg; msg2.innerHTML = msg2; } }, false ); //--> </script> </head> <body> <form action="form30.cgi" method="post" name="form2" id="form2"> <fieldset> <input type="text" id="text1" name="text1" size="10" maxlength="10" />+ <input type="text" id="text2" name="text2" size="10" maxlength="10" /> <input type="button" value="計算" name="calc" /> <br> <input type="hidden" name="plus" value=""> <input type="hidden" name="plus2" value=""> <p id="msg"></p> <p id="msg2"></p> <input type="submit" value="送信" /> </fieldset> </form> </body> </html> ****************************************************************

  • javascriptに詳しい方、教えてください。

    表示すると表示した瞬間に、文字サイズが大ぐらいから中ぐらいに勝手に変わったり、ボタンの所にカーソルを持っていくと文字サイズが変化したり、バーに文字を入力すると、バーの位置が変わったりするのですが、どうなっているのでしょうか? javascriptは全くわからないので、 どこをどう変えればいいのか、わかりやすい回答をお願いします。 (質問投稿の際に​が勝手に挿入されたりしますので​が入ってた場合は注意をお願いします。) <form name="fm" action="void" onSubmit="return false;"> <table style="background-color: #e0e0e0"><tr><td> <input Type="text" name="k" size="60" maxlength="255" value="" onKeyPress="if(event.keyCode == 13) { search('google'); }"> <input Type="reset" value="Reset"> </td></tr><tr><td> <INPUT type="checkbox" id="chk_blank" checked> <input Type="submit" value="Google" onClick="search('google');"> <input Type="submit" value="Yahoo" onClick="search('yahoo');"> </td></tr></table> </form> <!-- ****Google --> <form name="f_google" method="GET" action="http://www.google.com/search" Accept-charset="Shift_JIS"> <input type="hidden" name="q" value=""><input type="hidden" name="ie" value="Shift_JIS"> <input type="hidden" name="oe" value="Shift_JIS"><input type="hidden" name="hl" value="ja"> <input type="hidden" name="lr" value="lang_ja"><input type="hidden" name="num" value="20"> </form> <!-- ****Yahoo! --> <form name="f_yahoo" method="GET" action="" Accept-charset="euc-jp"> <input type="hidden" name="p" value=""> <input type="hidden" name="ei" value="euc-jp"> </form> <script LANGUAGE="JavaScript" Type="text/javascript"> <!-- function seteuc(fx){ bkup=document.charset; document.charset="euc-jp"; display(fx); document.charset=bkup; } function setsjis(fx){ bkup=document.charset; document.charset="shift_jis"; display(fx); document.charset=bkup; } function display(formx) { formx.target = getTarget(); formx.submit(); } function sitetop(ur) { swin=window.open(ur,getTarget(),""); swin.focus(); } function search(eng) { q=document.fm.k.value; if(eng=="google") { if(q=="") sitetop("http://www.google.co.jp/"); else { fw=document.f_google; fw.q.value=q; setsjis(fw); }} if(eng=="yahoo") { if(q=="") sitetop("http://www.yahoo.co.jp/"); else { fw=document.f_yahoo; fw.p.value=q; fw.action="http://search.yahoo.co.jp/search"; seteuc(fw); }} } function getTarget(){ blankFlg = document.fm.chk_blank.checked; target = ""; if( blankFlg == true ){ // 別窓で開く target = "_blank"; } else{ // 同じ窓で開く target = "_top"; } return target; } //--> </script>

  • javascriptでのアラート表示

    javascriptで大変困っております。 ラジオボタン・テキストエリアにまたがったチェックアラートをだしたいのですが、うまくいきません。 <script> function form_check(f) { if (f.Q1.value == "") { alert("・未記入です!"); return false; } ・ ・ ・ if (f.Q6.value == "") { alert("・名前が未記入です!"); return false; } else return true; } function reset_conf() { if (confirm("フォーム内容をリセットします!\n\nよろしいですか?")) return true; else return false; } </script> -------- <FORM ACTION="hogehoge.cgi" METHOD="POST" onSubmit="return form_check(this)"> 教育:<INPUT TYPE="radio" NAME="Q1" VALUE="OK"> テスト:<INPUT TYPE="radio" NAME="Q2" VALUE="OK">  アンケート:<INPUT TYPE="radio" NAME="Q3" VALUE="OK"> AAA:<input name="Q4" type="text" /> BBB:<input name="Q5" type="text" /> CCC:<input name="Q6" type="text" /> <INPUT TYPE="hidden" NAME="number" VALUE="6"> <INPUT TYPE="submit" NAME="answer" VALUE="送信する"> <INPUT TYPE="reset" NAME="reset" VALUE="リセット"> </FORM> </form> ------- テキストエリアのアラートチェックは出来ない状態です。 すべてにチェックまたは、テキスト入力がされていないと送信できないようにしたいのです。 どうしたらよいでしょうか?

  • Javascriptでセレクトメニューの選択チェックの方法

    Javascriptでセレクトメニューのフォームをチェックしたいのですが、 リストメニューの「選択して下さい」を選んだままだと、「番号を選択して下さい。」とエラーを出したいのですが、下記の様に書いてみたのですが、うまく動きません…どのように書けばいいか教えて下さい。宜しくお願いします。 <script language=\"JavaScript\"> <!-- function Check() { var str = document.form.a.value; if(document.form.a.value == "0") { alert("番号を選択して下さい"); } //--> </script> <form id="form" name="form" method="post" action="##"> <select name="a" onblur="Check();"> <option value="0">選択して下さい</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit" name="Submit" value="登録" onClick="Check();"> </form>

  • Javascriptを使った隠しページ探しについて

    隠しページ探しのホームページを作っているのですが、 【index.html】と【fff.js】という2つのファイルで作っています。 【index.html】は <html><head><title>第1問</title><script src="fff.js"></script> </head> <body oncontextmenu="return false;" onkeydown="return false;"> ここに答えを入れて下さい。<br> <form name="ike"> <input type="text" name="nyu"><input type="button" value="回答" onclick="ikou()"> </form> </body></html> 【fff.js】は function ikou(){ var a = document.ike.nyu.value+'9'; if(a == 6){  if(a == 9){ document.write('次は379.htmlです。');  }else{  window.alert('はずれ'); }else{ window.alert('はずれ'); } (次は379.htmlです。の所は実際は暗号化) です。 fff.jsの書き換えを行って解く問題にしようと思っているのですが、エラーになってしまいます。 どこを直せばいいのでしょうか。