- ベストアンサー
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>
- みんなの回答 (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>
その他の回答 (1)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
exDBに値が入ってないのではないですか? ラジオボタンが選択されているかどうかは、checkedプロパティを調べてください。 if(document.iform.ichar[0].checked == false && document.iform.ichar[1].checked == false ){
お礼
ご返答有難う御座いました。 exDBに関しましては、外部Javascriptファイルの中で指定しております。 taloo様のヒントのおかげで無事検索できるようになりました。 本当にありがとうございました。
お礼
ご返答有難う御座います。 こういったやり方もあるんですね。 大変参考になりました。有難う御座いました。