• ベストアンサー

ラジオボタンの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

  • Flash5でリンクボタンにtabIndexを指定したい

    ブラウザでswfファイルを表示させたときに、 Tabキーでムービー内のリンクボタンを順番にフォーカス移動させたいのですが、順番がバラバラ・飛び飛びになってしまいます。 FlashMXからはtabIndexを簡単に指定できるそうなのですが、私はFlash5しか持っておらず、またActionScriptについても恥ずかしながらよく解っておりません。 こうすればうまく設定できる、と教えてくださる方がおられましたら、よろしくお願いいたします。 (Flash5J、WindowsXP)

    • ベストアンサー
    • Flash
  • 【VB.NET】ラジオボタンについて

    お世話になっております 他のコントロールからEnterでラジオボタンに遷移したときに ラジオボタンの選択を表す破線がでなくて困っております。 Tabだと破線が出ます。 例えば、以下のようにTextBox1からEnterでRadioButton1にフォーカスを遷移しようとしたときです。 ------------------------------------------------------------------ TextBox1 ←ここでEnterを押下してRadioButton1にフォーカスを遷移させる ●RadioButton1 ○RadioButton2 ------------------------------------------------------------------ Tabで破線がでるのであれば、SendKey.Send(Keys.Tab)で出来るかも・・・と考え試してみましたが、うまく出来ませんでした。 なにか制御するプロパティ等があるのでしょうか? 一通りプロパティ見てみましたが、これといって当てはまるものは見当たりませんでした。 なにか良い解決方法があれば、ご指導よろしくお願いします。

  • ラジオボタンの制御

    ラジオボタンの制御について質問をお願い致します。 ラジオボタンを選択することで、 フォーム内の部品を表示と非表示を切り替えるようにしました。 例えば、表示しないと表示するというラジオボタンを2つ配置し、 表示すると言うラジオボタンを選択すると非表示の部品が表示され、 表示しないと言うラジオボタンを選択すると表示されている部品が、 非表示に設定されるようなフームをあった場合に、 フォームオブジェクトのボタンをクリックすることで、 ラジオボタンの表示するが選択され状態にしたり、 ラジオボタンの表示しないが選択された状態にするための、 JavaScriptをどのように作成すれば良いかのアドバイスを、 頂ければ幸いです。 どうぞよろしくお願い致します。

  • VisualC#.net TabIndexの設定

    Microsoft Visual C# .NET 2003で、Windowsアプリケーションを作っています。 フォーム上に、テキストボックスですとかプッシュボタンですとか、コントロールがいくつかあります。 実行時にTabキーを押したときの順番(Tabオーダー)は、プロパティの"TabIndex"で決まっていると思うんですが、 あとでコントロールを追加したときなどTabIndexをずらしたり付け替えたりするにはどうすればよいのでしょうか。 1つ1つ付け替えるしかないのでしょうか。

  • ラジオボタンでテキストボックスを非アクティブにできる?

    2択のラジオボタンと、テキストボックスが一つあったとして、ラジオボタンの片方を選択しているときは、このテキストボックスを非アクティブ状態にする、といったことはJavascriptで可能でしょうか? あまりJavascriptに詳しくないので、簡単な記述で制御できると助かるのですが・・・。 ご教授、よろしくお願いいたします。

  • Javascriptを使って動的にラジオボタンを配置する方法

    こんにちは。 Javascriptを模索しながら仕事で作業しています。 (突然、要員として投入されてしまいました <(ToT)> ) タイトルにあるように、ラジオボタンをJavascript を使って、ラジオボタンの配置数を動的に変化させ たいのですが、ネットを検索しても、ラジオボタン の配置数を動的にしているサイトがないので、難航 中す。「ラジオボタンの配置数を固定として…」が ほとんどでした。 画面を表示するときに、JavaBeanでラジオボタンの 情報を獲得できるので、この情報に従い表示したい です。表示中に、ラジオボタンの配置を変更するこ とはなく、submitにより、入力内容のチェックを行っ た後、サーブレットを起動する流れになっています。 すみませんが、手助けお願いします。

  • ラジオボタンによる有効なボタンの切り替えについて

    はじめまして。 下記のような機能を実装したいと思っています。 どなたか教えていただけませんでしょうか? <html> <head> <title>サンプル</title> </head> <input type="radio" name="radio1" value="a">A <input type="radio" name="radio1" value="b">B <input type="radio" name="radio1" value="c">C <input type="radio" name="radio1" value="x">全部ダメ <br><br> <input type="button" value="Aボタン"> <input type="button" value="Bボタン"> <input type="button" value="Cボタン"> </body> </html> ラジオの「A」を選択すると「Aボタン」のみ有効で他は無効(disabled)になり 「B」を選択すると「Bボタン」のみ有効というように、 選択したラジオボタンの値と有効なボタンを連動させたいのです。 さらに、ラジオの「全部ダメ」を選択すると全てのボタンを無効としたいです。 ラジオボタンの値の取得のjavascriptなど個々の機能について調べてみたりしたのですが どのように組み合わせれば、機能を実現できるのかわかりませんでした。 お手数ですが、ご教示いただけますでしょうか。。 可能ならばソースのサンプルをいただけるとありがたいのですが。 どうぞよろしくお願いいたします。

  • 【Tabキー】特定の範囲内だけでフォーカスを循環

    お世話になります。 javascript初心者のため、的外れな質問をしていましたらすみません。 HTMLサイトのフォーカスを、TabキーまたはShift+Tab押下で特定の範囲内で循環させたいと考えております。 イメージ的には、サイトのメニューにあたる部分(リンク)をぐるぐるループしてくれれば・・・と思うのですが。 Tabindex指定ですと、意図した順番には移動してくれますが、最後のTabが押されても最初に戻ることはできませんし・・・ そう思ってonkeydownで制御しようと思ったのですが、Shift+Tabの動作をどう実現していいのか分かりませんでした。 言葉足らずで申し訳ありませんが、ご回答宜しくお願い致します。

  • ラジオボタンを必須にしたい

    Javascript初心者です。 <input id="in-category-1" type="radio" name="category[]" value="1"> <input id="in-category-2" type="radio" name="category[]" value="2"> <input id="in-category-3" type="radio" name="category[]" value="3"> ~ <input id="in-category-11" type="radio" name="category[]" value="11"> <input id="publish" class="button-primary" type="submit" accesskey="p" tabindex="5" value="公開" name="publish"> 現在ある投稿フォームを作成しているのですが 上記HTMLのラジオボタン(1~11)がチェックをされないと 送信ボタンを押した際に「カテゴリ~を選んでください」と表示されるようにしたいです。 ページを読み込んだ時点ではどのラジオボタンにもチェックは入っていません。 この場合Javascriptによる処理をしたいのですが どの様に記述をすればよろしいでしょうか? クリックを押した際にIf文で判定するという書き方をすれば良いのでしょうか? 大変あつかましいお願いですがもしよろしければ サンプルコードなどを見せてください。

  • プルダウン内容に応じてラジオボタンをオンオフ

    jqueryを用いて制御をしようとしています。 プルダウンの値が0の時はラジオボタンを無効化して、 プルダウンの値が1に変更されたときは有効化したいです。 いろいろ調べているのですが、うまくいきません。 教えて下さい。

    • ベストアンサー
    • AJAX

専門家に質問してみよう