• ベストアンサー

ラジオボタンのtabindex = -1について

画面に配置されたラジオボタンにおいて マウス以外からの操作を無効にしたいと考えています。 (タブでの移動を不可としたい。) そこで、ラジオボタン部分にtabindex=-1を付加しましたが、 うまくいきません。 (順番は変更できるようですが。) 最終的にtabでのフォーカスがあたってしまいます。 これは、もうjavascriptで強制的に制御するしかないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.5

ごめんなさい。ていせいします。 whileを、うしろにつけかえたじょ。 tabindexではなく、classに'pass'をつけると、のーどをたどって つぎにいどうするじょ。ばぶぅ。    if (9 == keycode) {     do {      if ('INPUT' == element.nodeName && ! ('' + element.className).match(myReg)) {       element.focus();       return;      }     } while (element = getNextNode(element))    }

kim1560
質問者

お礼

試してみた結果。 考えていた通りに動作しました! これを参考にすれば、問題なくできそうです。 しかも、後からのメンテナンスも簡単になりそうです。 どうもありがとうございました。

kim1560
質問者

補足

なるほど、class名を付加して、focus判定を実施すればよいということでしょうか? これなら、設定の調節によってうまくいきそうですね。 試してみます。

その他の回答 (4)

回答No.4

もう~わがままだなぁ~ばぶっ! つまらないものだけど、こんなのはどうだかなぁ~?ばぶぅ。 <form>  <p>   <input type="text">   <input type="text" class="pass">   <input type="text" class="pass">   <input type="text">  </p> </form> <script type="text/javascript"> //@cc_on document./*@if(@_jscript)attachEvent('on'+ @else@*/addEventListener(/*@end@*/  'keyup', (function (getNextNode) {   var myReg = /\bpass\b/;   return function(evt) {    var element = evt./*@if(@_jscript) srcElement @else@*/ target /*@end@*/;    var keycode = evt.keyCode;        if (9 == keycode) {     while (element = getNextNode(element)) {      if ('INPUT' == element.nodeName && ! ('' + element.className).match(myReg)) {       element.focus();       return;      }     }    }   };  })(   function (node) {    var n;    if (n = node.firstChild) return n;    do if (n = node.nextSibling) return n; while (node = node.parentNode);    return null;   }  ), false ); </script>

回答No.3

<form>  <p>   <input type="text" tabindex="1">   <input type="text" tabindex="99" >   <input type="text" tabindex="98" onBlur="this.form.elements[0].focus()">  </p> </form> きょうせいてきに、てまえでせんとうに(てきとうなとこに)とばすとか

kim1560
質問者

補足

他に、方法がなければjavascriptで強制的な制御を加える予定です。 ただ、細かい設定が必要な場合もあるので極力避けたいのです。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

そもそもユーザーのアクセシビリティを落とす処理なので やるべきではないと思います。

kim1560
質問者

補足

個人的にもそう思っているのですが・・・。 それが、ユーザの希望なので・・・。

回答No.1

http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401j/interact/forms.html#h-17.11.1 HTML4なら、りようできるはんいは0から32767までだじょ! ieだけとくべつに、していできるだけだじょ! よみだしせんようにしておいて、ぽちっとくりっくしたときだけ あつかえるようにするとか・・・ではどうかな? ばぶぅ~。

kim1560
質問者

補足

機能はIE限定なので、-1の指定に問題は特にありません。 readonly も試しましたが、ラジオボタンには効果がないようです。

関連するQ&A