• 締切済み

行数の制限

function check(){ txt = document.myFORM.text.value; n = txt.match(/\r/g); len = n.length + 1; if(len > 60){ alert(len+"行もあります。\n改行は60行までです。"); return false; }else{ return turn } } これだとウインドウを出るのですが、『制限』と言った形にはならずそのままプログラムが続行されます。 どうすればプログラムの終了が出来るのでしょうか? 初心者なんですみません^^;

みんなの回答

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.3

横から失礼します submitボタンの onclick で check() をしているのが原因でしょう form の onsubmit で check() を評価するように変更が必要です print "\t<form action=./write.cgi method=post name=myFORM onsubmit='return check()'>"; print "\t<textarea name=text rows=11 cols=64></textarea><br>\n"; print "\t<input type=submit value=書き込み>"; // 現行ではhtmlソースが直出力になっていますが、htmlソース記述自体もjsで出力しないとoff 環境では容易に送信できてしまうと思いますので注意が必要かと思います

perl_cgi
質問者

お礼

おお!出来ました!ありがとうございます!! 一応CGIでもエラーを吐くようにしてあるので対策はしてあります!!

  • hkd9001
  • ベストアンサー率48% (99/204)
回答No.2

さっそくレスどうもです。 じゃ、このスクリプトを呼んでいるhtmlタグの部分ってどうなってます? それが分かると、わかるかもしれないです。

perl_cgi
質問者

お礼

#ありがとうございます。 print "<head>\n"; print "\t<script src=./system/js.js></script>\n"; print "\t<meta http-equiv=Content-Script-Type content=text/javascript>\n"; print "\t<meta http-equiv=Pragma content=no-cache>\n"; print "\t<meta http-equiv=Content-Type content=text/html; charset=Shift_JIS>\n"; print "</head>\n\n"; print "\t<form action=./write.cgi method=post name=myFORM>"; print "\t<textarea name=text rows=11 cols=64></textarea><br>\n"; print "\t<input type=submit onClick=check() value=書き込み>"; 一応こうなっております。お願いします!

  • hkd9001
  • ベストアンサー率48% (99/204)
回答No.1

こんにちは。 下から3行目 「return turn」→「return true;」 で どうでしょ? あと「ウインドウを出る」の意味がわからないのですが?

perl_cgi
質問者

お礼

立派なご返答ありがとうございます。 そうしてみましたが、無理でした・・・・・ 誤字でしたorz 『警告アラームは出るのですが』 と修正してください。 本当にすみませんでした

関連するQ&A

  • テキストエリアでの行数を調べる

    <script language="JavaScript"><!-- function check() { txt = document.myFORM.myTEXT.value; n = txt.match(/\r/g); if (n) len = n.length + 1; else len = 1; alert(len+"行です"); } // --></script> <form name="myFORM"> <textarea rows="3" name="myTEXT"></textarea> <input type="button" value="Check" onClick="check()"> </form> これで調べられると書いてあったのですがページエラーが出てしまいます 『n = txt.match(/\r/g);』の部分 ○UNIXの改行コードは0x0Aの1バイト(正規表現では\n)となります とあったので『n = txt.match(/\n/g);』として試してみたのですがこちらでもページエラーが出てしまいます ○『n = txt.match(/\r/g);』を『n = 2;』などのようにしたら alertはでるのですが『Nan行です』と表示されます サンプル紹介されているサイトでは改行3回だと『4行です』のように表示されるのですが自分でCGIファイルに組み込んでみると表示されません(><) どうしてかお分かりになる方いらっしゃいますでしょうか?

  • 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
  • テキストフィールドでの全角チェックについて

    テキストフィールド内にて、全角文字以外が入力されたらエラーをだすようにしています。そのとき以下のソースだと改行した時に、enterが半角とみなされてしまう現象が起こってしまいました。 function jstrlen(str) { len = 0; for (i = 0; i < str.length; i++) { wrk = escape(str.substr(i,1)); if ((wrk.substr(0,2) == "%u") && (wrk < "%uFF71")) { len++; } len++; } return len; } function isZen(str) { len1 = jstrlen(str.value); len2 = str.value.length * 2; if(len1 != len2){ alert("半角文字が混在"); str.focus() ; }else{ alert("全角文字のみ"); } } 対処方法をどなたかよろしくお願いします。

  • 半角英数字の判別

    お世話になります テキストフィールドにおいて半角英数字のチェックをしたいのですが・・・ 例えば『012ab』のような場合、 <script Language="JavaScript"> <!-- function checkText() { txt = document.myFORM.moto.value; if (txt.match(/[^a-z|^A-Z]/g)) alert("アルファベット以外が含まれてます"); } //--> </script> <form name="myFORM"> <input type="text" name="moto"> <input type="button" value="調べる" onClick="checkText()"> </form> では数字が入力されてるとalertされます function checkNum() { txt = document.myFORM.moto.value; for (i=0; i<txt.length; i++) { c = txt.charAt(i); if ("0123456789".indexOf(c,0) < 0) { alert("数値以外が含まれてます"); return; } } } //--> </script> <form name="myFORM"> <input type="text" name="moto"> <input type="button" value="調べる" onClick="checkNum()"> </form> ではアルファベットがあるとalertされてしまいます この2つをどのように組み合わせれば半角英数字以外であればalertされるようになるのでしょうか?

  • 年月日のチェックなんですが…

    いつもお世話になっております。 数日に渡り、あれこれと模索していましたが、どうしても分からないのでご質問させて頂きます。 どなたかご教授頂ければ幸いです。 やりたい内容と致しましては、 複数あるテキストの年月日が正しいものであるかどうかのチェックをJavascriptで行いたいのですが、どうしても始めの1つしかチェックを行ってもらえず、2つ目は全くチェックがかからない状態です。 どうやればいいのでしょうか… 因みにソースは以下の様に書いてみました。 <html> <meta http-equiv="Content-Type" content="text/html;charset=EUC-JP"> <head> <title>月日チェック</title> <script language="JavaScript"><!-- function check() {  txt = document.myFORM.elements["num[]"][0].value;  txt2 = document.myFORM.elements["num[]"][1].value;  var hoge = [ txt,txt2 ];  for(i=0; i<2; i++) {   if(!hoge[i] == "") {    if(!hoge[i].match(/^\d{4}\/\d{1,2}\/\d{1,2}$/) ){     alert("開始日の入力に誤りがあります\n\n例:2009/01/01 or 2009/1/1");     return false;    }    myData = hoge[i].split("/");    var vYear = myData[0] - 0;    var vMonth = myData[1] - 1;    var vDay = myData[2] - 0;    if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){     var vDt = new Date(vYear, vMonth, vDay);     if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){      return true;     }else {      alert("正しい月日を入力して下さい");      return false;     }    }else {     alert("正しい月日を入力して下さい");     return false;    }   }  } } // --></script> </head> <body> <form name="myFORM" method="post" action="res.html" onSubmit="return check()"> <input type="text" size="16" name="num[]"> <br> <input type="text" size="16" name="num[]"> <input type="submit" value="調べる"> </form> </body> </html>

  • 一括で入力のチェックをしたいのです!

    どなたか教えてください・・・ フツー入力チェックを行う場合 <SCRIPT language="JavaScript"> <!-- function Check(){ if(document.myform.Name.value==""){ alert("名前を入力してください。"); return false; } if(document.myform.Email.value==""){ alert("Eメールアドレスを入力してください。"); return false; } if(document.myform.Email.value.indexOf("@")<=0){ alert("Eメールアドレスが正しくありません。"); return false; } if(document.myform.Comment.value==""){ alert("コメントを入力してください。"); return false; } return true; } // --> </SCRIPT> こんなカンジで各フォーム毎にチェックを行い メッセージを出したりすると思うのですが、 フォーム数が多いため、入力のチェックを 一括で行いたいのですが・・・ JavaScriptを始めて間もないため とんちんかんな質問をしている様でしたら すみません。 どなたか入力チェックを一括で出来る方法を 教えて頂けないでしょうか・・・ お願いします。

  • checkbox必須チェック

    function hissuCheck(form) { var paramArray = Array("…24個"); var alrtArray = Array("…24個"); var len = paramArray.length; for(i=0; i<len; i++) { var obj = form.elements[paramArray[i]]; if(obj.type == "text") { if(obj.value == "") { alert(alrtArray[i]+"は必須入力です"); form.elements[paramArray[i]].focus(); return false; } } else if(obj.type == "select-one" || obj.type == "select-multi") { for(varSelected=0, j=0; j<obj.options.length; j++) { if(obj.options[j].selected)varSelected+=obj.options[j].value; } if(varSelected == 0) { alert(alrtArray[i]+"は必須入力です"); form.elements[paramArray[i]].focus(); return false; } } else { for(varChecked=0, k=0; k<obj.length; k++) { if(obj[k].type == "checkbox") { if(obj[k].checked)varChecked++; } } if(varChecked == 0) { alert(alrtArray[i]+"は必須入力です"); return false; } } } return true; } 必須チェックですが、最後のチェックボックスだけがチェックしても「…は必須です」とアラートが表示されてしまいます。どうか宜しくお願いします

  • returnするとundifinedになってしまう

    このようなHTMLがあります。 -------------------------------------- <div id="id1"> 本文 </div> <div id="id2"> 本文 </div> -------------------------------------- このHTMLに以下↓のようなjavascript(jquery)を書くと、アラートで3の値が表示されます。 ---------------------------------------------------------------------------- a(1); function a(n){ if($("#id"+n).length){ n++ a(n); }else{ alert(n); } } ---------------------------------------------------------------------------- ここで質問がります。 このアラートで表示される3を、return で返して、変数に代入したいのですが、 何度やってもundifinedになってしまいます。↓ ---------------------------------------------------------------------------- var no=a(1); alert no; function a(n){ if($("#id"+n).length){ n++ a(n); }else{ return n; } } ※alert no;がundifinedになってしまう・・・ ---------------------------------------------------------------------------- どのように記述すればうまくいくでしょうか? わかる方いらっしゃいましたら教えてくださると助かります。 よろしくお願い致します。

  • 半角英数字のみの入力にエラーを返すには

    運営しているサイトに設置したコメントフォームからスパムがたくさん送信されてきます。 その対策として、「氏名のよみがな」入力欄が半角英数字のみの入力の場合にはアラートを出して投稿できないようにしたいです。 下記のようなJSを使用していますが、 if (!kana) { alert('氏名のよみがなを入力してください。'); return false; } の部分を変更して「半角英数字しか入力されていない場合、アラートを返す」ようにするには、どうしたら良いでしょうか? htmlの文字コードはShift_JISです。 よろしくお願いします。 function postComment { var name = eval('document.name.value'); var kana = eval('document.kana.value'); var email = eval('document.email.value'); var comment = eval('document.comment.value'); sum++; if (!name) { alert('氏名を入力してください。'); return false; } else { if (!kana) { alert('氏名のよみがなを入力してください。'); return false; } else { if (!email) { alert('メールアドレスを入力してください。'); return false; } else { if (!comment) { alert('コメントを入力してください。'); return false; } else { var confirm_text = '以下の内容で送信します\n' + 氏名:' + name + '\n よみがな:' + kana + '\n メール:' + email + '\n 本文:' + comment; if (!confirm(confirm_text)) { return false; } else { alert('コメントを送信しました。'); } } } } } }

  • プルダウンメニューを選択していない時に送信ボタンを押した場合、(必須の)アラートを表示したい。

    過去にほぼ同じ質問がありましたが、それでも解決出来なかったので質問させていただきました。 フォームで未入力の項目に対してアラートとフォーカスされるようにしました。 そこにプルダウンメニューを加えたものを作ろうとしたのですが、アラートの内容が全部同じ(職業が選択されていません)になってしまった事と、アラートは表示されたのですが、プルダウンメニューを選択してもアラートが出続けてしまいます。 プルダウンメニューが未選択の場合にのみアラートを表示するにはどうしたらよいでしょうか。 <SCRIPT language="JavaScript"> <!-- function chkHissu(frm){ var hissu=Array('name','kana','age','mail','sex','syumi'); var hissu_nm = Array('名前','フリガナ','年齢','メールアドレス','性別','趣味'); var len=hissu.length; for(i=0; i<len; i++){ var obj=frm.elements[hissu[i]]; if(obj.type=='text' || obj.type=='textarea'){ if(obj.value==''){ alert(hissu_nm[i]+'は必須入力項目です'); frm.elements[hissu[i]].focus(); return false; } }else{ for(var j=0, chk=0; j<obj.length; j++){ if(obj[j].checked) chk++; } if(chk==0){ alert(hissu_nm[i]+'は必須入力項目です'); return false; } } } return true; } function check(value){ //数字かどうかのチェック if(isNaN(value)){ alert("数値を半角で入力してください。"); //警告コメント document.form1.age.focus(); return false; } //入力があるかどうかのチェック if(!value){ alert("年齢を入力してください。"); //警告コメント document.form1.age.focus(); return false; } } function checkAd(address){ if(!address){ alert("メールアドレスを入力してください。"); } else if(address.indexOf("@",0)<=0){ alert("メールアドレスが正しくありません。"); document.form1.mail.select(); return false; } } //-- </SCRIPT> ご存知の方がいらっしゃいましたらご教授願います。