- ベストアンサー
ラジオボタンをタイトルに
- フォームメールでフォームで選んだラジオボタンの値をタイトルに付ける方法を教えてください。
- ラジオボタンの値がundefinedとなってしまう問題について解決方法を教えてください。
- ラジオボタンで4択にした結果もタイトルに表示する方法はありますか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
<SCRIPT language="JavaScript"> function check(){ var radio_atai; for(i = 0;i < 4;i++){ if(document.mail.radio1[i].checked == true){ radio_atai = document.mail.radio1[i].value; } } if (radio_atai){ var box = document.mail.box.value; var mail_subject = box + radio_atai; document.mail.action = "mailto:kodera@sophia-souken.co.jp?subject=" + mail_subject; return true; } else { alert("ラジオボタンが選択されていません"); return false; } } </SCRIPT> ---- スクリプトの部分を、↑と変更してみてください。 回答は、見栄えをよくするために、タブの変わりに全角スペースを 入れているので、エラーになります。 これは、全角スペースを抜いてあります
その他の回答 (5)
- yu-kichan
- ベストアンサー率40% (4/10)
すみません。 また間違えてしまいました。 for(i = 0;i < 4;i++){ ですね…
- yu-kichan
- ベストアンサー率40% (4/10)
遅いかもしれませんが、テストをしてみました。 -------- <HTML> <HEAD> <SCRIPT language="JavaScript"> function check(){ var radio_atai; for(i = 0;i < 3;i++){ if(document.mail.radio1[i].checked == true){ radio_atai = document.mail.radio1[i].value; } } if (radio_atai){ var box = document.mail.box.value; var mail_subject = box + radio_atai; document.mail.action = "mailto:メールアドレス?subject=" + mail_subject; return true; } else { alert("ラジオボタンが選択されていません"); return false; } } </SCRIPT> </HEAD> <BODY> <form method="post" name="mail" enctype="text/plain"> <INPUT TYPE="radio" name="radio1" value="test1">test1 <INPUT TYPE="radio" name="radio1" value="test2">test2 <INPUT TYPE="radio" name="radio1" value="test3">test3 <INPUT TYPE="radio" name="radio1" value="test4">test4 <BR> <INPUT TYPE="text" name="box"> <BR> <INPUT TYPE="submit" value="test" onClick="return check()"> </FORM> </BODY> </HTML> -------- このようでもいいでしょうか?
補足
何度も回答してもらってすみませんが、CGIは使わないでフォームメールでやりたいのですが、この方法でも可能でしょうか?コピー&ペーストでメールアドレスだけ自分のアドレスに書き換えて使って見たところリセットされるようなのですが。。。どういう事でしょうか?一応書かれてる構文自体はある程度わかったのですがそこから進めません(>_<)
- kodai_sumio
- ベストアンサー率45% (29/64)
すいません、回答の補足です。 for(i = 0;i < 3;i++){ となっていますが、四択であれば for(i = 0;i < 4;i++){ ですね。
- kodai_sumio
- ベストアンサー率45% (29/64)
> document.mail.ラジオボタン名.checked これはラジオボタンがチェックされているかどうかの真偽を返すためのものです。ですので、ラジオボタンの値を返すには下の方が書かれたようになります。 ただし、下の方が書かれたやり方で値をCGIに渡すにはスクリプト内で行う必要があります。onSubmitに直接書くのではなく、ヘッダーに関数を作って、それを呼び出すようにすれば良いのではないでしょうか。 var radio_atai; function SUBMIT(){ for(i = 0;i < 3;i++){ if(document.mail.ラジオボタン名[i].checked == true){ radio_atai = document.mail.ラジオボタン名[i].value; } } if(radio_atai){ location.href='mailto:メールアドレス?subject=' + document.mail.elements['ボックス名'].value + radio_atai; }else{ return false; } } <FORM NAME="mail" onSubmit="return SUBMIT()">
- yu-kichan
- ベストアンサー率40% (4/10)
document.mail.ラジオボタン名[i].checked チェックされている場合、true されていない場合、false ラジオボタンで4択にする場合、javascriptのfor で0~3回して、trueのものの値 document.mail.ラジオボタン名[i].value で値が入ってきます。 ------ for(i = 0;i < 3;i++){ if(document.Myform.ラジオボタン名[i].checked == true){ radio_atai = document.Myform.ラジオボタン名[i].value; } } ------ radio_atai に、ラジオボタン名の値が入ります。
補足
この場合スクリプトをヘッダに書きたしておいて document.mail.ラジオボタン名.checkedと私が書いている所をradio_ataiにすれば良いのでしょうか? さっそく試したのですがどこか間違えたのか上手く動作しないみたいです。
お礼
ありがとうございます。実際的には少し他の部分と重なっている部分があるためにまだ使えないのですが、方法は理解出来たと思います。これを参考に自分が今やろうとしてる部分に組み込んで行こうと思います。