• ベストアンサー

javascriptでラジオボタンを使用した検索をできるようにしたいです

現在javascriptで任意のラジオボタンを選択すると、外部データベースから簡単な検索が出来るようなものを試しに作っているのですが、ラジオボタンのvalueが認識されないため頭を抱えています。 初歩的かつ、javascriptで行うことではないと思いますが、ご教授いただければ幸いです。 下に内容を入力しますので、宜しくお願いします。 ----------------------- <html> <head> <title>DB</title> <style type="text/css"> <!-- th{background:#000080;color:#ffffff;} .light-center{background:#ffffff;text-align:center;} .light{background:#ffffff;} .dark-center{background:#dddddd;text-align:center;} .dark{background:#dddddd;} --> </style> <script language="javascript" src="./data.js"></script> <script language="javascript"> <!-- var i; var cols=3; var rows=10; var amount=cols*rows; function dataSearch(){ if(document.iform.ichar.length){ if(document.iform.ichar[0].value=="" && document.iform.ichar[1].value==""){ alert("選択してください"); document.iform.ichar.focus(); return false; } var flag=false; var resultWindow=window.open("","Result","toolbar=no,location=no,status=no,menubar=no,width=400,height=200"); resultWindow.document.write("<h3>検索結果</h3>"); resultWindow.document.write("<hr /><table border='1'>"); for(i=0;i<amount;i+=cols){ if(exDB[i]==document.iform.ichar[0].value){ resultWindow.document.write("<tr><td width=60>" + exDB[i] + "</td>"); resultWindow.document.write("<td width=120>" + exDB[i+1] + "</td>"); resultWindow.document.write("<td width=120>" + exDB[i+2] + "</td></tr>"); flag=true; }else{ if(exDB[i]==document.iform.ichar[1].value){ resultWindow.document.write("<tr><td width=60>" + exDB[i] + "</td>"); resultWindow.document.write("<td width=120>" + exDB[i+1] + "</td>"); resultWindow.document.write("<td width=120>" + exDB[i+2] + "</td></tr>"); flag=true; } } } } resultWindow.document.write("</table>"); resultWindow.document.close(); } //--> </script> </head> <body bgcolor="#fff8dc"> <h3>電球検索</h3> <hr /> 検索したい色を選択してください<br /> <form name="iform" onSubmit="dataSearch()"> <input type="radio" name="ichar" value="昼白色" />昼白色 <input type="radio" name="ichar" value="電球色" />電球色<br> <input type="submit" value="Search" /> </form> <hr /> <br /> </body> </html>

質問者が選んだベストアンサー

  • ベストアンサー
noname#84373
noname#84373
回答No.2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>Counter</title> <body> <p> <input type="radio" name="ichar" value="" checked>なし <input type="radio" name="ichar" value="昼白色">昼白色 <input type="radio" name="ichar" value="電球色">電球色<br> <input type="button" value="GetValue" onClick="alert(getRadioValue('ichar'))"> </p> <script type="text/javascript"> function getRadioValue (nm) {  var c = 0, o, g = document.getElementsByName(nm);  while (o = g[c++]) if (o.checked) return o.value;  return null; } </script>

deadend555
質問者

お礼

ご返答有難う御座います。 こういったやり方もあるんですね。 大変参考になりました。有難う御座いました。

その他の回答 (1)

回答No.1

exDBに値が入ってないのではないですか? ラジオボタンが選択されているかどうかは、checkedプロパティを調べてください。 if(document.iform.ichar[0].checked == false && document.iform.ichar[1].checked == false ){

deadend555
質問者

お礼

ご返答有難う御座いました。 exDBに関しましては、外部Javascriptファイルの中で指定しております。 taloo様のヒントのおかげで無事検索できるようになりました。 本当にありがとうございました。

関連するQ&A