人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【JavaScript】ラジオボタン選択と吐き出し方法について
<script>
function update(fm) {
var output = "";
output += "依頼者:";
if (!fm.irai[4].checked) {
for (var i = 0; i <= 3; i++) {
if (fm.irai[i].checked) {
output += fm.irai[i].value;
}
}
} else {
output += fm.hoka.value;
}
output += "\n";
output += "連絡先:";
output += fm.t.value;
output += "\n";
output += "訪問者:";
if (!fm.houmon[4].checked) {
for (var i = 0; i <= 3; i++) {
if (fm.houmon[i].checked) {
output += fm.houmon[i].value;
}
}
} else {
output += fm.hoka2.value;
}
output += "\n";
output += "連絡先:";
output += fm.t2.value;
output += "\n";
fm.yoyaku.value = output;
}
依頼者と訪問者で同じ項目を選択した場合、訪問者の番号欄がグレーアウトし、吐き出しエリアには
依頼者:訪問者:選択内容
連絡先:テキストエリア「t」の内容
と反映するようにしたい。
※「その他」の場合は、上記のように作動せず、両方とも入力・反映するようにしたい。
文字数制限で、html部分のソースを記載する事ができませんでした…
必要であれば、回答への補足としてソースを記載させて頂きます。

●質問者: hwelleh
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:FM HTML JavaScript T2 エリア
○ 状態 :終了
└ 回答数 : 1/2件

▽最新の回答へ

1 ● rikuba
●60ポイント
/** ラジオボタンのノードリストを受け取り、選択されているラジオボタンの値を返す。 */
function getValueByRadios(radios) {
 var i = 0;
 var I = radios.length;
 var radio;
 for (; i < I; ++i) {
 radio = radios[i];
 if (radio.checked) {
 return radio.value;
 }
 }
 return null;
}

/** 同じフォームに属する要素を制御する。 */
function controlForm(element) {
 var form = element.form;
 var elements = form.elements;
 var name = element.name;
 var value = element.value;
 var anotherName = (name === 'irai' ? 'houmon' : 'irai');
 var anotherElements = form.elements[anotherName];
 var anotherValue = getValueByRadios(anotherElements);

 // 「訪問者連絡先」欄の制御
 if (value === 'other' || anotherValue === 'other') {
 // 一方あるいは両方が「その他」の場合は常に有効
 elements['t2'].disabled = false;
 } else {
 // 両方が同じ選択肢であれば無効化
 elements['t2'].disabled = (element.value === anotherValue);
 }
}

function update(form) {
 var elements = form.elements;

 var irai = getValueByRadios(elements['irai']);
 if (irai === 'other') {
 irai = elements['hoka'].value;
 }

 var houmon = getValueByRadios(elements['houmon']);
 if (houmon === 'other') {
 houmon = elements['hoka2'].value;
 }
 
 var irai_contact;
 var houmon_contact;
 if (irai === houmon) {
 // 依頼者と訪問者が同じであれば、連絡先も同じ
 irai_contact = houmon_contact = elements['t'].value;
 } else {
 irai_contact = elements['t'].value;
 houmon_contact = elements['t2'].value;
 }

 elements['yoyaku'].value = [
 '依頼者:' + irai,
 '連絡先:' + irai_contact,
 '',
 '訪問者:' + houmon,
 '連絡先:' + houmon_contact
 ].join('\n');
}
◎質問者からの返答

ありがとうございます!!

訪問者と依頼者が同じ時のみ、吐き出し文言を

依頼者:訪問者:選択内容

連絡先:テキストエリア「t」の内容

とする事は不可能なのでしょうか。

※依頼者と訪問者が異なる場合・その他を選択の場合は

依頼者:

連絡先:

訪問者:

連絡先:

と吐き出し。

また、依頼者と訪問者が同じ時、訪問者の番号入力欄に何らかの反応をさせたいのですが、

(グレーアウトし入力できなくなる・依頼者の番号が自動反映する等)

それも不可能なのでしょうか。

ご教示宜しくお願い致します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ