プロが教える店舗&オフィスのセキュリティ対策術

Javascript初心者です。テキストに入力された数字(1~7)をもとに、そのテキストボックスの横に文字を表示させたいです。(1なら「非常にあてはまる」、2なら「ややあてはまる」・・・等)
且つ、1つのHTML内にそのテキストボックスが50個あります。。
それぞれ個別に文字を表示させたいのですが、簡易に記述する方法はありますでしょうか。
同様の質問を拝見しましたが、テキストの値で且つ複数が同一ページで挙動できる方法を見つけることができませんでした。お分かりになる方ご教示いただけますと大変助かります。
よろしくお願いいたします。

A 回答 (3件)

addEventListener ('DOMMouseScroll', function (event) {


 var e = event.target, no;

 if ('SELECT' === e.nodeName)
  if ('select-one' === e.type)
   if (-1 < (no = e.selectedIndex - (0 < event.detail ? 1: -1)))
    if (no < e.options.length)
     e.selectedIndex = no;
}, false);

ふぁいあ~ふぉっくすなら
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。大変助かりました。

お礼日時:2011/06/17 17:00

たとえば、いかのようにすると、すうちがにゅうりょくされるまで、どんなほそくがつくかわからない。


1から7までのほそくを、りすとひょうじしておくべきだと、かんがえるようになるよ。

<!DOCTYPE html>
<title></title>
<body>

<form action="#">
 <ol>
  <li>
   <p>
    原発がきになりますか?
    <input type="number" size="5" min="1" max="7" value=""
     title="1-7までの数値を入力してください"
     onfocusout="hosoku.call (this, event, 'q1span', 'mess1')"
     onblur="hosoku.call (this, event, 'q1span', 'mess1')">
    <span id="q1span"></span>
   </p>
  </li>
  <li>
   <p>
    放射能と放射線を説明できますか?
    <input type="number" size="5" min="1" max="7" value=""
     title="1-7までの数値を入力してください"
     onfocusout="hosoku.call (this, event, 'q2span', 'mess2')"
     onblur="hosoku.call (this, event, 'q2span', 'mess2')">
    <span id="q2span"></span>
   </p>
  </li>
 </ol>
</form>

<script>
var TYPE = {
 mess1 : [
  'かなり気になる',
  'それとなく気になる',
  'やや気になる',
  'あまり気にならない',
  '全く気にならない',
  'もうあきらめた',
  '海外に移住する'
 ],
 
 mess2 : [
  'できる',
  'なんとなくできる',
  '知ったかぶりでなら、押し通せる',
  '忙しいという理由で断る',
  'そんなのも知らないの?という',
  'なんで俺に聞くんだよと逆切れする',
  '無口になる'
 ]
}

function hosoku (event, id, type) {
 var e = this;
 var doc = e.ownerDocument;
 var te = doc.getElementById (id);
 var min = Number (e.getAttribute ('min'));
 var max = Number (e.getAttribute ('max'));
 var val;
 var mes;
 
 if ('' === e.value)
  return;

 val = isNaN (e.value) ? 0: Number (e.value);

 if (val < min || max <val) {
  // e.setAtribute('aria-invalid', 'true');
  alert (e.title);
  setTimeout (function () { e.focus (); e.select (); }, 250);
  return;
 }
 else {
  /* e.removeAtribute('aria-invalid'); */;
 }

 if (mes = TYPE[type]) {
  te.innerHTML = mes[val];
 }
}

</script>
    • good
    • 0
この回答へのお礼

早速のご回答をありがとうございます。
通常はマトリクス形式やプルダウン形式で選んでもらうのですが、50個もありまして選ぶより入力する方が負担が軽いかな、という考えのもと作成しようと思いたったのですが、確かにご指摘の通り、リスト表示は必須ですね。ご教示、ご指摘、大変ありがとうございました。助かりました。

お礼日時:2011/06/01 13:12

HTMLだけでかいけつできそうなのだけど、あえてすくりぷとでやるの?!



<select name="hoge">
<option value="" selected>-
<option value="1">1.非常にあてはまる
<option value="2">2.やや当てはまる
</select>
    • good
    • 0

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