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

このQ&Aに関連する最新のQ&A

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に関連する人気のQ&A

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

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

このQ&Aと関連する良く見られている質問

QXwindow osf/motifのラジオボタンの作成できない!!!!

Xwindow osf/motifのラジオボタンの作成できない!!!!!!!

X-Window OSF/Motifプログラミング
兜木昭男/木下凌一/栄谷政己/林秀幸/安川悦子,日刊工業新聞社

上の本をみながら画面を作っています。

ラベルボタンなら  XmCreateLabele
アローボタンなら  XmCreateArrowButton
プッシュボタンなら XmCreatePushButton

で作れるんですけどラジオボタンは本に載ってないんです。
ネットで探してもなかなか見当たらなくて困ってます。

motifの知識がなくてどう質問したらいいのかわかりません。

わかる範囲で結構です。教えていただいたら幸いです!!!

Aベストアンサー

http://www.ist.co.uk/motif/books/vol6A/ch-12.fm.html
Motif Programing Manual

Example 12-6 The radio.c program

Q■JavaScriptでフォームのラジオボタンの値を受けるには?

ラジオボタンって name が一緒ですよね?
選択したかどうかってどうやって見極めるのでしょうか><?

Aベストアンサー

直接値を得るのではなくforで回してデータを受けます

<script language="javascript">
function check_radio(r){
for(i=0;i<r.length;i++){
if(r[i].checked){
return r[i].value;
}
}
return "チェックしてよ";
}
</script>
<form>
<input type="radio" name="hoge" value="1">1
<input type="radio" name="hoge" value="2">2
<input type="radio" name="hoge" value="3">3
<input type="radio" name="hoge" value="4">4
<input type="button" value="チェック" onClick="alert(check_radio(this.form.hoge))">
</form>

直接値を得るのではなくforで回してデータを受けます

<script language="javascript">
function check_radio(r){
for(i=0;i<r.length;i++){
if(r[i].checked){
return r[i].value;
}
}
return "チェックしてよ";
}
</script>
<form>
<input type="radio" name="hoge" value="1">1
<input type="radio" name="hoge" value="2">2
<input type="radio" name="hoge" value="3">3
<input type="radio" name="hoge" value="4">4
<input type="button" value="チェック" onClick="...続きを読む

Qラジオボタンのオンとオフ

エクセルのシートにラジオボタンを作って、該当者はラジオボタンをチェックして、非該当者は、ラジオボタンをチェックしないようにしたいのですが、非該当者が誤ってラジオボタンを押したときに、2回ラジオボタンを押すと、色が変わらないようにするには、ラジオボタンの設定をどのようにすればいいでしょうか?教えてください。よろしくお願いします。

Aベストアンサー

エクセルでラジオボタンとはオプションボタンのことですよね?
ラジオボタンは、排他的な選択肢で、ユーザが 1 項目だけを選択しなければいけないときに使います。
チェックボックスは、0 項目、1 項目、またはそれ以上の項目を選ぶことができるような複数選択肢で使います。各チェックボックスは他のチェックボックスから独立しているため、ひとつのチェックボックスを選択した場合、他のチェックボックスの選択が外れるということがありません。

どうしてもラジオボタンでやりたければVBAでしょうね。

Q選択したたラジオボタンの値をSUBMITボタンに

選択したたラジオボタンの値をSUBMITボタンの名前として自動的に替えたいのですが、助言をいただけますか。
イメージは下記です。★の部分に、クリックごとにradioの値を入れたいのです。

<script Language="JavaScript"><!--
function set()
{
n = document.myFORM.Radio.value;
}
// -->
</script>
<FORM ACTION="add.cgi" METHOD="POST" name="myFORM">
<INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onclick="set()" CHECKED>
<INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪">
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★"></form>

Aベストアンサー

Win98 + IE5.5SP1で試してみました。
どうもType=Radioの時は、Submit前はname属性でデータを指定してもUndefinedにしかならないようなので、この場合はelements[]配列を使うのが良さそうです。

ちなみに下記のHTMLだと、画面に最初に表示された時の初期値はBodyタグのonLoadで関数を呼び出して初期化してます。

<html>
<head>
<script Language="JavaScript">
<!--
function set( n ) {
document.myFORM.Submit.value = document.myFORM.elements[n].value;
}
// -->
</script>
</head>
<body onLoad="set(0);">
<FORM ACTION="add.cgi" METHOD="POST" name="myFORM">
<INPUT TYPE="RADIO" NAME="Radio" VALUE="東京" onClick="set(0);" CHECKED>
<INPUT TYPE="RADIO" NAME="Radio" VALUE="大阪" onClick="set(1);">
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="★">
</form>
</body>
</html>

Win98 + IE5.5SP1で試してみました。
どうもType=Radioの時は、Submit前はname属性でデータを指定してもUndefinedにしかならないようなので、この場合はelements[]配列を使うのが良さそうです。

ちなみに下記のHTMLだと、画面に最初に表示された時の初期値はBodyタグのonLoadで関数を呼び出して初期化してます。

<html>
<head>
<script Language="JavaScript">
<!--
function set( n ) {
document.myFORM.Submit.value = document.myFORM.elements[n].value;
}
// -->
</script>
</head>
<body o...続きを読む

QExcelのラジオボタンにチェックが入らないようにするには?

 Excel上にラジオボタンが何個かついているsheetがあります。
sheetをクリックするとラジオボタンにチェックが入ってしまうのですが、
チェックを入れない状態で印刷をしたいのです。

=EMBED("Forms.OptionButton.1","")

上のように、ラジオボタンの上にカーソルを持っていくと表示されます。
また、ラジオボタンの上でダブルクリックすると以下のように表示されます。
----------------------------------
Private Sub OptionButton9_Click()

End Sub
------------------------------------

 マクロは全く分からない初心者です。
どのようにマクロのラジオボタンにチェックを入れずに印刷したらいいでしょうか?
よろしくお願いします。

Aベストアンサー

コントロールツールのボタンを表示してデザインモードにします。

ON(黒丸)になっているラジオボタンを選択して、プロパティのValueをTrueからFalseに変更して下さい。

全てのラジオボタンが非選択の状態になりますので、デザインモードを終了して下さい

Qラジオボタンを選択すると、他のラジオボタンの動きを制御したい

radio1~radio3のいずれか「はい」を選択すると、
その他が強制的に「いいえ」に切り替わるスクリプトはどのように作成すればよろしいでしょうか?

<INPUT TYPE=radio NAME="radio1" VALUE="1">はい
<INPUT TYPE=radio NAME="radio1" VALUE="2">いいえ

<INPUT TYPE=radio NAME="radio2" VALUE="1">はい
<INPUT TYPE=radio NAME="radio2" VALUE="2">いいえ

<INPUT TYPE=radio NAME="radio3" VALUE="1">はい
<INPUT TYPE=radio NAME="radio3" VALUE="2">いいえ

Aベストアンサー

寝ぼけてた。
<form>
<p>
<input type="radio" name="radio1" value="1" class="gp0">はい
<input type="radio" name="radio1" value="2" class="gp0" checked>いいえ
</p>
<p>
<input type="radio" name="radio2" value="1" class="gp0">はい
<input type="radio" name="radio2" value="2" class="gp0" checked>いいえ
</p>
<p>
<input type="radio" name="radio3" value="1" class="gp0">はい
<input type="radio" name="radio3" value="2" class="gp0" checked>いいえ
</p>
</form>


<script type="text/javascript">
//@cc_on
var grp = 'gp0';
var reg = new RegExp('\\b' + grp + '\\b');
var elms = document.getElementsByTagName('input');
var o, objs = [], cnt = 0;
while (o = elms[cnt++]) if (o.className && o.className.match(reg)) objs.push(o);

document./*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/'click',
function (evt) {
var c = 0;
var e = evt./*@if (1) srcElement @else@*/ target /*@end@*/;

if (!(e.tagName == 'INPUT' && e.type == 'radio')) return;
if (!(e.className && e.className.match(reg))) return;

if (e.value == '1') {
while (o = objs[c++]) o.checked = o.value == '2';
e.checked = true;
}
}
, false);

</script>
でどうでしょう?

寝ぼけてた。
<form>
<p>
<input type="radio" name="radio1" value="1" class="gp0">はい
<input type="radio" name="radio1" value="2" class="gp0" checked>いいえ
</p>
<p>
<input type="radio" name="radio2" value="1" class="gp0">はい
<input type="radio" name="radio2" value="2" class="gp0" checked>いいえ
</p>
<p>
<input type="radio" name="radio3" value="1" class="gp0">はい
<input type="radio" name="radio3" value="2" class="gp0" checked>いいえ
</p>
</form>


<script...続きを読む

Qエクセルのラジオボタン

エクセル2010です。

表示させるだけのラジオボタンを作成したいと思っていますが、方法が分かりません。
マクロに連動せず、ファイルを開いたときにマクロの有効無効を聞いてこない、ただの2者択一選択ボタンです。
どのように作成すれば良いかご教示頂けないでしょうか。

Aベストアンサー

ご質問のラジオボタンは、エクセルではオプションボタンと言います。

>ただの2者択一選択ボタンです

2者択一できるだけの「1組の」ボタンを配置したいご相談ですが、ちなみにそういうのを「複数組」作成したい場合などでは、また少し手順が変わります。
とりあえずここでは基本の、たとえば「○男」と「○女」のような2者択一できるだけのボタンの作り方について説明します。


エクセルではオプションボタンとして、「フォーム」と「アクティブXコントロール」の2種類を利用できます。
手順:
エクセルのオプションから開発タブを表示する
挿入▼から希望の種類のオプションボタンをシート上に配置する
それぞれ右クリックして編集して表記を整える
アクティブXコントロールを利用した場合は、デザインモードをクリックして選択を解除する

とりあえず作り方は以上です。



#複数組を作成したい場合
フォームコントロールでは、組にしたい2個ずつをフォームの「グループボックス」で囲みます
アクティブXコントロールでは、組にしたい2個ずつそれぞれ右クリックしてプロパティからGroupName欄に、組にしたい2個ずつに任意のグループ名を記入しておきます
別の2個には別のグループ名(任意)を、2個ずつ同じグループ名で、記入しておくという意味です


#念のため補足
回答した手順は「マクロに連動」していませんし、マクロの有効を聞いてくることもありません。
勝手に違う事をしていると違いますので、間違えないよう気を付けて下さい。

ご質問のラジオボタンは、エクセルではオプションボタンと言います。

>ただの2者択一選択ボタンです

2者択一できるだけの「1組の」ボタンを配置したいご相談ですが、ちなみにそういうのを「複数組」作成したい場合などでは、また少し手順が変わります。
とりあえずここでは基本の、たとえば「○男」と「○女」のような2者択一できるだけのボタンの作り方について説明します。


エクセルではオプションボタンとして、「フォーム」と「アクティブXコントロール」の2種類を利用できます。
手順:
エクセルのオ...続きを読む

Qフォームメール ラジオボタンONでリストボックス表示

現在グッズデザインの注文フォームを構築中なんですが、
出来る限り分かりやすい注文フォームを構築したいと考えています。

で!
『デザイン加工を希望する』のラジオボタンをチェックした時のみ
各デザイン部分のリストボックスが表示されるようにしたいのですが

例)
○ デザイン加工を希望する(希望の方はチェックをお願いします。)

ラジオボタンをチェックすれば、以下の項目が表示される
 ●●部分の色『リストボックス』
 ●●部分の形『リストボックス』
 ●●部分の向き『リストボックス』

という感じです。

もう少し分かりやすい感じですと、
注文フォームで
『○ ご注文者と送り先が違う場合はチェックして下さい』
で、チェックすると名前、住所、電話など入力できるフォームが表示される
見ないな感じです。

この様な内容を解説しているページをご存知でしょうか?
ここが良いよ!的なWebサイトがありましたら教えてください。
宜しくお願い致します。

Aベストアンサー

「javascript 表示 非表示」で検索すると参考になるページが見つかると思います。

#1さんのサンプルとも似ていますが一応。

<html>
<head>
<script type="text/javascript">
function optionView(condId,targetBlockId) {
document.getElementById(targetBlockId).style.display =
(document.getElementById(condId).checked)?'block':'none';
}
</script>
</head>
<body>

<form>
<div>
<label for="jouken1" onclick="optionView(this.htmlFor,'targetblock1')">デザイン加工を希望する場合はチェックして下さい</label>
<input type="checkbox" onclick="optionView(this.id,'targetblock1')" id="jouken1">
<ul id="targetblock1" style="display:none">
<li>●●部分の色 <select><option>選択してください</option></select></li>
<li>●●部分の形 <select><option>選択してください</option></select></li>
<li>●●部分の向き <select><option>選択してください</option></select></li>
</ul>
</div>
<div>
<label for="jouken2" onclick="optionView(this.htmlFor,'targetblock2')">ご注文者と送り先が違う場合はチェックして下さい</label>
<input type="checkbox" onclick="optionView(this.id,'targetblock2')" id="jouken2">
<div id="targetblock2" style="display:none">
お名前<input><br>
ご住所<input>
</div>
</div>
</form>
</body>
</html>


私的には、最初隠れていて、何かすると出てくるってのはあまり好きではありません。
このケースでいうと、何が選べるのかってのもチェックをするかどうかの判断材料だと思えるから。
ただのサンプルケースなんで実際のフォームではまた違う印象を持つかもしれませんが。

あと、分かりやすいフォームを目指すなら「アクセシビリティ フォーム」
「ユーザビリティ フォーム」とかで検索すると参考になりますよ。
(フォームは結構奥が深い)

「javascript 表示 非表示」で検索すると参考になるページが見つかると思います。

#1さんのサンプルとも似ていますが一応。

<html>
<head>
<script type="text/javascript">
function optionView(condId,targetBlockId) {
document.getElementById(targetBlockId).style.display =
(document.getElementById(condId).checked)?'block':'none';
}
</script>
</head>
<body>

<form>
<div>
<label for="jouken1" onclick="optionView(this.htmlFor,'targetblock1')">デザイン加工を希望する場合...続きを読む

Qラジオボタンのリセット方法

現在フレームをつかって二分割しているんですが(A,Bとする)
Bにラジオボタン選択画面にして
ラジオボタンを選択してOKを押すと
その処理をAで行い
新しい画面をAに出すと
しています。
その際ラジオボタンを前に選択したものが
残ってしまい
リセットしたいのですがどうしたらよいですか?

Aベストアンサー

該当フレームの該当フォームのreset()を呼び出します。

Qメールフォームの未入力チェック ラジオボタンの場合

メールフォームに、」ラジオボタンでA~Eの項目があります。これを仮に”koumoku”という名前をつけたとして、最初にはどこにもチェックを入れない状態で表示したいと思います。
それで、A~Eのどれかを必ず選択してもらいたいので送信前に未入力の場合にはアラーとを出したいのですが、

if(document.mail.Koumoku.value!='checked'){
window.alert('未入力個所があります。\nご確認ください。');
return false;
}

にすると、チェックしてもアラーとがでてきます。

また !='chekced' を =='' にすると、チェックが無くても通ってしまいます。
どうしたら良いのでしょうか?

Aベストアンサー

こういうのが好みです。

function onKoumokuCheck(_obj_) {
for(var i=0; i<_obj_.length; i++)
if(_obj_[i].checked) return(true);
window.alert('未入力個所があります。\nご確認ください。');
return(false);
}

<FORM NAME=myForm METHOD=post ACTION="checked.htm" onSubmit="return(onKoumokuCheck(this.Koumoku))">
<INPUT TYPE=radio NAME=Koumoku VALUE=1>
<INPUT TYPE=radio NAME=Koumoku VALUE=2>
<INPUT TYPE=submit NAME=koumokuCheck VALUE=check>
</FORM>


人気Q&Aランキング