
No.1ベストアンサー
- 回答日時:
ラジオボタンの未選択判定をどうやって判定するかが肝ですね。
他のは選択されているかどうかスクリプトで調べて、アラートを出し、
サブミットさせないようにするだけですから、簡単です。
簡単なのは、type="submito"のボタンは止めて、普通のボタンtype="button"
にして、スクリプトでサブミット発行すればよいというわけです。
No.5
- 回答日時:
#4です。
checkboxとかradioとか、だぶってちぇっくしているので
こうりつわるいです。
ぶんぽうのちぇっくは、いかをさんこうに。
じぶんもやれよ!ってはなしですが・・・。^^;
とくに
<!DOCTYP
とか
<title>なかったり
<style>とか<script>にtypeぞくせいを、かかないひととか
http://openlab.ring.gr.jp/k16/htmllint/htmllint. …
http://validator.w3.org/
No.4
- 回答日時:
ながくなったので、めでおうのがたいへんになりました。
なので、たくさん、むしがいそうです。
それにしてもHTMLのぶんぽうが、ぐだぐだです。
みなおすべきでは?
とうこう、もじすうにのせいげんに、ひっかかりそうな・・・。
ぜんかくくはくは、はんかくにでもなおしてね。 ばぶぅ~
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<title>TEST</title>
<style type="text/css">
table, hr { margin-bottom: 1em; }
p { margin: 0 }
</style>
<body>
<form name="frmQA" action="545.cgi" method="post" target="_top">
<p>#ID_SESSION</p>
<hr>
<div class="comment_info">
以下各設問へのご回答をお願いいたします。
</div>
<table class="work">
<tr>
<td class="header">Q1.<span class="required">≪必須項目≫</span>
<tr>
<td>
<table class="work_small">
<tr>
<td>
<input type="hidden" name="Q1" value="radio1">
<tr>
<td class="under">
<input type="radio" class="radios" name="radio1" value="01あ">1.あ
<td class="under">
<input type="radio" class="radios" name="radio1" value="02い">2.い
<td class="under">
<input type="radio" class="radios" name="radio1" value="03う">3.う
</table>
</table>
<table class="work">
<tr>
<td class="header">Q2.<span class="required">≪必須項目≫</span>
<tr>
<td>
<input type="hidden" name="flg_radio2" value="2">
<table class="work_small">
<tr>
<td>
<input type="hidden" name="Q2" value="radio2">
<tr>
<td class="under">
<input type="radio" class="radios" name="radio2" value="01多い">1.多い
<td class="under">
<input type="radio" class="radios" name="radio2" value="02ちょうど良い">2.ちょうど良い
</table>
</table>
<table class="work">
<tr>
<td class="header">Q9.(複数回答可)
<tr>
<td>
<table class="work_small">
<tr>
<td>
<input type="hidden" name="Q9" value="chkbox1">
<td class="under3">
<input type="checkbox" class="checks" name="chkbox1" value="01ABC">1.ABC
<td class="under3">
<input type="checkbox" class="checks" name="chkbox1" value="02DEF">2.DEF
<td class="under3">
<input type="checkbox" class="checks" name="chkbox1" value="03GHI">3.GHI
</table>
</table>
<table class="attribute">
<tr>
<td class="header">ご職業
<td class="right">
<select class="combs" name="occupation">
<option value="">(職業を選択してください)</option>
<option value="01会社員・公務員">会社員・公務員</option>
<option value="02会社役員">会社役員</option>
<option value="03商工自営">商工自営</option>
<option value="04専門職・自由業">専門職・自由業</option>
</select>
</table>
<p>
<A href="#" onClick="QA.check(true);">
<img src="../image/stockholder/cheack.gif" alt="送 信" border="0">
</A>
<A href="#" onClick="QA.form.reset()">
<img src="../image/stockholder/reset.gif" alt="リセット" width="75" height="25" border="0">
</A>
</p>
</form>
<script type="text/javascript">
var NullChecker = function ( form ) {
this.list = [ ];
this.mess = '入力されていない項目があります';
this.add = function ( name ) {
var c = 0, n;
while( n = arguments[ c++ ] )
this.list.push( n );
};
this.setMessage = function ( message ) {
this.mess = message;
};
this.getValue = function ( inp ) {
var d = document;
var counter = 0;
var es, e;
if( 'string' === typeof inp )
es = d.getElementsByName( inp ) || [ d.getElementById( inp ) ];
else
es = [ inp ];
while( e = es[ counter++ ] ) {
switch( e.type ) {
case 'hidden' : case 'submit': case 'text':
case 'button' : case 'reset' : case 'textarea':
return e.value;
break;
case 'checkbox': case'radio':
if( e.checked ) return e.value;
break;
case 'select-one': // case 'select-multiple':
var cnt = 0, o;
while( o = e.options[ cnt++ ] )
if( o.selected ) return e.value;
break;
default:
}
}
return '';
};
this.check = function ( mode ) {
var cnt = 0;
var e, n;
while( e = this.list[ cnt++ ] ) {
n = e.name || e.id;
if( '' === this.getValue( n ) ) {
this.mess && alert( this.mess );
return false;
}
}
mode && this.form.submit();
return true;
};
if( 'string' === typeof form )
form = document.forms[ form ];
if( 'FORM' !== form.nodeName )
return alert( "Error !!" );
this.form = form;
var es = form.elements;
var e;
var c = 0;
while( e = es[ c++ ] )
/hidden|submit|reset|button/.test( e.type ) || this.list.push( e );
}
var QA = new NullChecker( 'frmQA' );
</script>
No.3
- 回答日時:
まあ一例ですが....(ラジオボタンはめんどう)
<script type="text/javascript">
<!--
function checkform(form){
var checkflg = true;
for(var i=0;i<form.length;i++){
if(form[i].className=="Required"){
if(form[i].nodeName=="INPUT"){
switch(form[i].getAttribute("TYPE")){
case "text":
if(form[i].value=="")cancel_submit();
break;
case "checkbox":
if(!form[i].checked)cancel_submit();
break;
case "radio":
//?????
break;
}
}else{
if (form[i].value=="")cancel_submit();
}
}
}
if(checkflg){
return true;
}else
return fales;
}
function cancel_submit(){
alert("だめです");
checkflg = false;
}
}
// -->
</script>
<form onSubmit="return checkform(this)">
<input type="text" class="Required">
<input type="checkbox" class="Required">
<input type="radio" name="radio1" class="Required">
<input type="radio" name="radio1" class="Required">
<textarea class="Required"></textarea>
<select name="sel1" class="Required">
<option value=""></option>
<option value="aaa">aaa</option>
<option value="bbb">bbb</option>
</select>
<div>
<input type="text" class="Required">
<input type="checkbox" class="Required">
<input type="radio" name="radio2" class="Required">
<input type="radio" name="radio2" class="Required">
<textarea class="Required"></textarea>
<select name="sel2" class="Required">
<option value=""></option>
<option value="aaa">aaa</option>
<option value="bbb">bbb</option>
</select>
</div>
<input type="submit">
</form>
No.2
- 回答日時:
漠然とした質問だと回答が難しい…
とりあえず一般論でよいのなら、ぐぐったほうがいろいろ見つかる。
<一例>
http://javascriptmarket.com/script/jsm39.html
http://www.tagindex.com/javascript/form/check1.h …
http://allabout.co.jp/internet/javascript/subjec …
こんなのもある
http://youmos.com/news/jsvalidate
この回答への補足
ご回答、ありがとうございます。
いろいろ探しては見てるんですが・・・。
漠然と質問してしまっていたのでソースを添付します。
以下のように試しては見たんですが、複数にチェックを設定する方法がわかりません。
<script type="text/javascript">
<!--
function check(){
var flag = 0;
// 設定開始(チェックする項目を設定してください)
if(!document.frmQA.chkbox1.checked){
flag = 1;
}
// 設定終了
if(flag){
window.alert('チェックされていません'); // チェックされていない場合は警告ダイアログを表示
return false; // 送信を中止
}
else{
return true; // 送信を実行
}
}
// -->
</script>
</head>
<body>
<form name="frmQA" action="545.cgi" method=post target=_top>
#ID_SESSION
<hr>
<BR>
<div class="comment_info">
以下各設問へのご回答をお願いいたします。
</div>
<br>
<table class="work">
<tr><td class="header">Q1.<span class="required">≪必須項目≫</span></td>
</tr>
<tr><td><table class="work_small">
<nobr>
<input type="hidden" name="Q1" value="radio1"></nobr>
<tr>
<td class="under">
<nobr><input type="radio" class="radios" name="radio1" value="01あ">1.あ</nobr>
</td>
<td class="under">
<nobr><input type="radio" class="radios" name="radio1" value="02い">2.い</nobr>
</td>
<td class="under">
<nobr><input type="radio" class="radios" name="radio1" value="03う">3.う</nobr>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table class="work">
<tr><td class="header">Q2.<span class="required">≪必須項目≫</span></td></tr>
<input type="hidden" name="flg_radio2" value="2">
<tr>
<td><table class="work_small">
<nobr><input type="hidden" name="Q2" value="radio2"></nobr>
<tr>
<td class="under">
<nobr><input type="radio" class="radios" name="radio2" value="01多い">1.多い</nobr>
</td>
<td class="under">
<nobr><input type="radio" class="radios" name="radio2" value="02ちょうど良い">2.ちょうど良い</nobr>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table class="work">
<tr><td class="header">Q9.(複数回答可)</td></tr>
<tr>
<td><table class="work_small">
<nobr> <input type="hidden" name="Q9" value="chkbox1"></nobr>
<td class="under3">
<nobr> <input type="checkbox" class="checks" name="chkbox1" value="01ABC">1.ABC</nobr>
</td>
<td class="under3">
<nobr><input type="checkbox" class="checks" name="chkbox1" value="02DEF">2.DEF</nobr>
</td>
<td class="under3">
<nobr><input type="checkbox" class="checks" name="chkbox1" value="03GHI">3.GHI</nobr>
</td>
</tr>
</table>
</td>
</tr>
</table>
<br>
<table class="attribute">
<tr>
<td class="header">ご職業</td>
<td class="right"><select class="combs" name="occupation">
<option value="00(職業を選択してください)">(職業を選択してください)</option>
<option value="01会社員・公務員">会社員・公務員</option>
<option value="02会社役員">会社役員</option>
<option value="03商工自営">商工自営</option>
<option value="04専門職・自由業">専門職・自由業</option>
</select> </td>
</tr>
</table>
<A href="#" onClick="javaScript:check();"><IMG src="../image/stockholder/cheack.gif" alt="送 信" border="0"></A>
<A href="javaScript:document.frmQA.reset()"><IMG src="../image/stockholder/reset.gif" alt="リセット" width="75" height="25" border="0"></A><br>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
-
ピンとくる人とこない人の違いは?直感を鍛える方法を心理コンサルタントに聞いた!
根拠はないがなんとなくそう感じる……。そんな「直感がした」という経験がある人は少なくないだろう。ただ直感は目には見えず、具体的な説明が難しいこともあるため、その正体は理解しにくい。「教えて!goo」にも「...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Javascriptの電卓で最初の何も...
-
自動計算について
-
JavaScriptによる自動計算フォーム
-
文字数を数える際に空白、改行...
-
Formのシリアライズができない
-
ボタン押下すると一行テキスト...
-
jQueryでテーブル行の表示・非表示
-
JavaScriptの「.querySelectorA...
-
jQueryで合計を出したい
-
画面表示とともにtableの指定の...
-
【緊急】リアルタイムでエラー...
-
別ページからOnclickでテーブル...
-
xml+xslt変換後のstyle操作
-
PHPとJSを使ったお問い合わせフ...
-
JSで、テーブルのある行のみ、...
-
プルダウン選択を変更すると、...
-
【掲示板の機能】投稿時にサイ...
-
【javascript・PHP】プルダウン...
-
Selectボックスの幅を自動で広...
-
スクリプト内でチェックボック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
画面表示とともにtableの指定の...
-
JavaScriptの「.querySelectorA...
-
Javascriptの電卓で最初の何も...
-
複数のselect値で1つも選択され...
-
ボタンクリックでフォーカス移動
-
テーブル内のチェックボックス...
-
クリックした行の背景色の変更
-
jQueryで合計を出したい
-
文字数を数える際に空白、改行...
-
インラインフレームを利用した...
-
ラジオボタンを一括で操作する...
-
画面の2重起動をチェックする...
-
メールフォームについて
-
.NETを使用せずに、ASP・VBScri...
-
SCRIPT及びソースを教え...
-
同一nameの input type="text"...
-
テーブルの一部を入力フィール...
-
フォームの入力チェック方法
-
localStorageでのcheckbox制御
おすすめ情報