0

私はフォームを持っています: http://jsfiddle.net/q2BnA/1/。オプション 1 をクリックしてフィールド 1 にフォーカスを移動し、オプション 2 をクリックしてフィールド 2 にフォーカスを移動できるようにしたいと考えています。だから、私はそれを行うためにJQueryを持っています。このスタイルを追加するまではうまくいきます:

input[type=checkbox], input[type=radio]  {
        display:none;
    }

現在、IE8 と IE7 で問題が発生しています (サポートする必要があります)。フォーカスがありません。次の行が原因だと思います: var option1 = $('#option1').is(' :checked ') ;

しかし、次の方法で独自のスタイルを設定しているため、ラジオ ボタンを非表示にする必要があります。

input[type=radio] + label {
    /*look nice*/
}

IE でこれを解決するにはどうすればよいですか?

JQ

function focusThis() {
        var option1 = $('#option1').is(':checked');
        if (option1) {
            //alert(1);
            $('#field1').focus();
        } else {
            //alert(2);
            $('#field2').focus();
        }
    }

HTML

<form>
<fieldset><legend>Options</legend>
      <ul>
        <li><input type="radio" name="A" id="option1" onclick="focusThis();"><label for="option1">Option 1</label> 
            <label for="field1">Field 1</label><input id="field1"/></li>

        <li><input type="radio" name="A" id="option2" onclick="focusThis();"><label for="option2">Option 2</label>

            <fieldset id=""><legend></legend>
              <ul>
                <li><label for="field2">Field 2</label> <input id="field2"/></li>
                  <li><label for="field3">Field 3</label> <input id="field3"/></li>
              </ul>
          </fieldset>
         </li>
      </ul>
  </fieldset>
</form>
4

3 に答える 3

1

次に、を使用しないdisplay noneでください。次の回避策を使用してください。

input[type=checkbox], input[type=radio]  {
       position:absolute;
       left:-9999px;
       top:-9999px;
    }

デモ

于 2013-07-23T16:49:48.530 に答える
0

クリック イベントには、現在のコントロールへのフォーカスが必要です。

このスレッドを見てください: onClick イベントで Javascript フォーカスを変更しますか? .

event.PreventDefault(); を使用することをお勧めします。別のスレッドでこの回答を見てください: https://stackoverflow.com/a/1357151/335905

于 2013-07-23T16:49:42.003 に答える