フォームメールでフォームで選んだラジオボタンの値をタイトルに付けたいのですが、どうすればよいのでしょうか?私はこのようにしてるのですが
<form method="post" name="mail" enctype="text/plain" onsubmit="document.mail.action='mailto:メールアドレス?subject=' + document.mail.elements['ボックス名'].value + document.mail.ラジオボタン名.checked">
これでやるとボックスの値はタイトルになるのですが、ラジオボタンの値がundefinedとなってしまうのです。
 ラジオボタンで4択にした結果もタイトルに表示する方法は無いものでしょうか?どうか教えて下さい。

A 回答 (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>

----
スクリプトの部分を、↑と変更してみてください。
回答は、見栄えをよくするために、タブの変わりに全角スペースを
入れているので、エラーになります。
これは、全角スペースを抜いてあります
    • good
    • 0
この回答へのお礼

 ありがとうございます。実際的には少し他の部分と重なっている部分があるためにまだ使えないのですが、方法は理解出来たと思います。これを参考に自分が今やろうとしてる部分に組み込んで行こうと思います。

お礼日時:2001/06/20 14:41

すみません。


また間違えてしまいました。

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

ですね…
      
    • good
    • 0

遅いかもしれませんが、テストをしてみました。



--------
<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は使わないでフォームメールでやりたいのですが、この方法でも可能でしょうか?コピー&ペーストでメールアドレスだけ自分のアドレスに書き換えて使って見たところリセットされるようなのですが。。。どういう事でしょうか?一応書かれてる構文自体はある程度わかったのですがそこから進めません(>_<)

補足日時:2001/06/20 13:46
    • good
    • 0

すいません、回答の補足です。


for(i = 0;i < 3;i++){
となっていますが、四択であれば
for(i = 0;i < 4;i++){
ですね。
    • good
    • 0

> 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()">
    • good
    • 0

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にすれば良いのでしょうか?
さっそく試したのですがどこか間違えたのか上手く動作しないみたいです。

補足日時:2001/06/20 11:20
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ