人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScriptで、アンケートのラジオボタンの空欄チェックを行う方法を教えてください。ラジオボタンの質問が2問あります。問1(選択肢は4つ)で4番目を選択した人は、問2(選択肢は4つ)の回答が必須になります。問1で4番目を選択して、かつ問2で何も選択してない場合のみ、ポップアップでエラーメッセージを出したいのです。(※問1の空欄チェックは今回は不要です。)以下のスクリプトを加工して使いたいのですが、どのようにすればいいかを教えていただけないでしょうか。

<SCRIPT Language="JavaScript">
<!--
function Check()
{
if (document.test.Q01[3].checked == true) { alert("問1で「持っていない」と回答した人は、問2にもお答えください"); return false; }
}
// -->
</SCRIPT>

●質問者: mathematician
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:JavaScript test アンケート エラーメッセージ スクリプト
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● aside
●50ポイント

先をこされたかっ?

<SCRIPT Language="JavaScript">
<!--
function Check()
{
// 問2のチェック
var flgQ2;
for (var idx = 0; idx < 4; idx++) {
 flgQ2 = document.test.Q02[idx].checked;
}
// 問1問2のチェック
if (document.test.Q01[3].checked && !flgQ2) { alert("問1で「持っていない」と回答した人は、問2にもお答えください"); return false; }
}
// -->
</SCRIPT>
◎質問者からの返答

早速の回答ありがとうございました。

しかし、私の早とちりで問題が間違っておりました。「問1(選択肢は4つ)で4番目を選択した人は?」ではなく、

「問1(選択肢は4つ)で1番目?3番目を選択した人?」でした。(4番目を選択した人は問2を回答しなくていい)

ポイントを上乗せさせていただきますので、修正案をお願いできないでしょうか。よろしくお願いします。


2 ● 牛乳先生(tukihatu)
●50ポイント

これが一番かな?

<SCRIPT Language="JavaScript">
<!--
function Check()
{
var obj = document.test.Q02;
for (i = 0 ; obj.length > i ; i++ ){
 if (obj[i].checked){
 date = obj[i].value ;
 break;
 }
}
if (document.test.Q01[3].checked == true && !date) { alert("問1で「持っていない」と回答した人は、問2にもお答えください"); return false; }
}
// -->
</SCRIPT>

ここにも同じ方法が書いてありました

http://chaichan.hp.infoseek.co.jp/qa3500/qa3977.htm

◎質問者からの返答

早速の回答ありがとうございました。

しかし、私の早とちりで問題が間違っておりました。「問1(選択肢は4つ)で4番目を選択した人は?」ではなく、

「問1(選択肢は4つ)で1番目?3番目を選択した人?」でした。(4番目を選択した人は問2を回答しなくていい)

ポイントを上乗せさせていただきますので、修正案をお願いできないでしょうか。よろしくお願いします。


3 ● KUROX
●50ポイント

<SCRIPT Language="JavaScript">

<!--

function Check()

{

var fQ1 = false;

var fQ2 = false;

var objQ1 = document.test.Q02;

var objQ2 = document.test.Q02;

//Q1のチェック

for (i = 0 ; i<=2 ; i++ ){

if (objQ1[i].checked){

fQ1 = objQ1[i].value ;

break;

}

}

//Q2のチェック

for (i = 0 ; i<=3 ; i++ ){

if (objQ2[i].checked){

fQ2 = objQ2[i].value ;

break;

}

}

if (fQ1 == true && fQ2 == false ) { alert("問1で「持っていない」と回答した人は、問2にもお答えください"); return false; }

}

// -->

</SCRIPT>

こんな感じですかね。

◎質問者からの返答

早速の回答ありがとうございました。

しかし、私の早とちりで質問に間違いがありましたので、改めて質問させていただきます。

よろしければ、そちらのほうにもご回答ください。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ