ラジオボタンがどうしても理解できません。簡単便利な機能なのでどうしても習得したいんですけれども...
やりたいことはラジオボタンで第一の選択で検索サイト(http://search.yahoo.co.jp/searchやhttp://www.google.co.jp/searchなど)を指定して、第二の選択で検索ワード(天気や地図といったもの)を決定して検索を行いたいのです。作ってみたものが下記です。
------------------------------------
スクリプトを貼り付けたら800文字を超えましたので割愛します。
------------------------------------
どなたか教えていただければ幸いです。チェックがついていないとアラームも出したいです。すいません、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
もう少し推敲してから質問した方がよかったかも
しれませんね。
たぶん以下のようなことをやりたいのだと思いますが
こんな感じでよろしいのでしょうか?
(Resultは使いようがないのですが、なんですか?)
<script language="javascript">
function submitFunc(f){
var rv1="";
var rv2="";
for(var i=0;i<f.r1.length;i++){
rv1+=(f.r1[i].checked==true)?f.r1[i].value:"";
}
for(var i=0;i<f.r2.length;i++){
rv2+=(f.r2[i].checked==true)?f.r2[i].value:"";
}
if (rv1==""){
alert("検索サイトを選択してください")
f.r1[0].focus();
return false;
}
if (rv2==""){
alert("検索ワードを選択してください")
f.r2[0].focus();
return false;
}
var f2=document.forms[rv1];
for(var i=0;i<f2.length;i++){
if(f2[i].name=="p" || f2[i].name=="q") f2[i].value=rv2;
}
f2.submit();
}
</script>
<form mothod="get">
検索サイト<br>
<input type="radio" name="r1" value="yh">yh<br>
<input type="radio" name="r1" value="gg">gg<br>
検索ワード<br>
<input type="radio" name="r2" value="天気">天気<br>
<input type="radio" name="r2" value="地図">地図<br>
<input type="text" name="Result" size="20"><br>
<input type="button" value="送信" onClick="submitFunc(this.form)">
<input type="reset" value="リセット">
</form>
<form name="yh" action="http://search.yahoo.co.jp/search" method="get">
<input type="hidden" name="p">
<input type="hidden" name="ei" value="sjis">
</form>
<form name="gg" action="http://www.google.com/search" method="get">
<input type="hidden" name="q">
</form>
>もう少し推敲してから質問した方がよかったかも
しれませんね。
そうですよね。いやぁ~すばらしい。すばらしい。完璧です。ちなみにですね、Resultのフォームは、ここで質もする前に色々なサンプルを組み合わせていたのでそのどれかサンプルの名残です。本当はスクリプトが理解できないのでもっと質問したかったのですが、そこはもう少し時間をかけて勉強して別のスレッドを立てます。ありがとうございました。
No.2
- 回答日時:
まずは、
function disp(){
document.write("<form action="+rv1+" method=get><input name="+rv2+"><input type=submit value=検索></form>");
}
あとは、質問者さまが、どうしたいのか、ソースからは、わかりかねませんので、補足をお願いします。
この回答への補足
大変すいません。JSの前にフォーム自体が間違っていたことに気づきました。前述ではrv2が間違ってなくとも検索ワードは指定できていませんでした。生成されるフォーム自体はこうならければなりませんでした。
---
<form action="http://www.google.com/search"><input type=hidden hidden value="天気" name="q"><input type="submit" value="go検索"></form>
または
<form action="http://search.yahoo.co.jp/search"><input type=hidden value="地図" name="p"><input type=hidden value="shift_jis" name=ei><input type="submit" value="yh検索"></form>
---
そうすると新たな問題が出まして、yahooの場合は検索アドレスと"q"と言う値,googleではアドレスと"p"という値を同時に取得しなければなりません。どうすればよいのでしょうか。//元々のスクリプトには2つの検索フォームがありますが、本来は一つ(あとでhiddenで隠すつもりですが)でいきなり検索をしたいのですがyのボタンを押さないとrv1とrv2の値が取得できません。どうすればチェックを入れるだけで取得できるようになるのでしょうか。
余計なことを言いますと、alartを出すスクリプトでラジオボタンを押した瞬間にalartが出るのとラジオボタンを選択後にsubmitボタンを押してalartがでるスクリプトの違いもわかりません。(私のラジオボタンの理解力を言ってるだけですのでこれについてはコメントいりません)
本当はKokoroneさんから一つひとつ教えていただけたらと思っていましたがyambejpさんからホールインワンのお答えをいただいたので、この質問を閉じなければなりません。また今度ご指導ください。ありがとうございました。
No.1
- 回答日時:
割愛されては困ります。
必要最小限まで、削ったソースを提示してください。
せっかく作ったのですから、それを生かすためにも、ここで
提示していただいて、回答者の皆様に、お聞きしてはいかがですか?
また、どこでエラーになっているのか?どこがわからないのかも、
教えていただきたいですね。
この回答への補足
そうですよね。kokoroneさんありがとうございます。スクリプト結構絞りました。
<script>
var rv1,rv2;
function radio1(r){
rv1=r.value;
}
function radio2(r){
rv2=r.value;
}
function disp(r){
document.write("<form action=",rv1," method=get><input name=",rv2,"><input type=submit value=検索></form>");
}
</script>
<form name="MyForm">
検索サイト<br>
<input type="radio" name="1" value="http://search.yahoo.co.jp/search" onClick="radio1(this)">yh<br>
<input type="radio" name="1" value="http://www.google.com/search" onClick="radio1(this)">gg<br>
検索ワード<br>
<input type="radio" name="2" value="天気" onClick="radio2(this)">天気<br>
<input type="radio" name="2" value="地図" onClick="radio2(this)">地図<br>
<input type="button" value="y" onClick="disp()">
<input type="text" name="Result" size="20"><br>
<input type="reset">
</form>
<SCRIPT>
<!--
disp();
// -->
</SCRIPT>
問題は本当に多くあるのですが、特になぜfunction disp内でrv2の値が得られないのかがわかりません。また2段式になっているのも望んでるわけではありません。yを押した後もとのページにもどると値がリセットされているみたいで2度目にyを押しても値がundifinedになります。問題だらけのスクリプトです。よろしくおねがいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) セルの値をグーグルで検索するエクセルVBAについて! 2 2022/08/01 21:41
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(SNS・コミュニケーションサービス) Yahoo!とGoogle検索のしくみの違いを教えてください 2 2022/08/14 01:53
- Access(アクセス) Access 複数条件検索の設定が上手く行きません 1 2022/07/22 20:37
- HTML・CSS 【html】検索ボックスを作りたい 4 2022/04/02 17:25
- Excel(エクセル) EXCELで参照したデータを検索したい。 2 2023/01/18 13:32
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- 迷惑メール・スパム gmailの過去のメールを一括削除する方法について 3 2023/04/19 05:27
- その他(スマートフォン・携帯電話・VR) Googleアカウントを管理 について 2 2023/03/14 20:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ラジオボタンにタブインデック...
-
ラジオボタンの値でリンク先を...
-
ラジオボタン未チェックの場合...
-
ラジオボタンでdisabledとchecked
-
チェックされたラジオボタンに...
-
ラジオボタンの未選択アラート/...
-
診断サイトの作り方
-
jsでラジオボタンによって表示...
-
Jvasvriptのlengthで個数が取得...
-
リセットボタンでクリアできな...
-
データベースの値を判断してラ...
-
チェックボックスのON/OFFに連...
-
ラジオボタンのチェックが外れ...
-
javascriptで日付+乱数+選択...
-
return trueとreturn falseの用...
-
プルダウン 項目が多いので先頭...
-
【jQuery】input nameの文字列...
-
チェックボックスのON/OFFでVal...
-
特定<table>内の<td>の色を変える
-
3桁区切りのカンマをつけたい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ラジオボタンのチェックが外れ...
-
javascript作成してます。ラジ...
-
ラジオボタンにタブインデック...
-
Jvasvriptのlengthで個数が取得...
-
ホームページ作成について。
-
データベースの値を判断してラ...
-
フォームPOST後「戻る」時のチ...
-
ラジオボタンでdisabledとchecked
-
Form内のselectを連動させるに...
-
チェックされたラジオボタンに...
-
アンダーバーのname値は取得で...
-
ラジオボタンのリセット方法
-
jQueryで複数のラジオボタンを処理
-
ラジオボタンの分岐方法に関して
-
javascriptによる動的なリンク...
-
radio選択をクッキーに保存させ...
-
jQuery 変数の使い方について
-
ラジオボタンでチェックした項...
-
チェックボックスとテキストボ...
-
JavaScriptでラジオボタンのチ...
おすすめ情報