【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部分のソースを記載する事ができませんでした…
必要であれば、回答への補足としてソースを記載させて頂きます。

回答の条件
  • 1人10回まで
  • 13歳以上
  • 登録:2011/03/03 20:46:09
  • 終了:2011/03/10 20:50:07

回答(2件)

id:rikuba No.1

rikuba回答回数26ベストアンサー獲得回数122011/03/04 04:40:53

ポイント60pt
/** ラジオボタンのノードリストを受け取り、選択されているラジオボタンの値を返す。 */
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');
}
id:hwelleh

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

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

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

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

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

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

依頼者:

連絡先:

訪問者:

連絡先:

と吐き出し。

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

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

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

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

2011/03/04 06:29:15

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 rikuba 26 23 12 2011-03-04 07:35:54

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません