2013-10-23 4 views
18

BootstrapのJavaScriptボタンを使用してラジオボタンのスタイルを設定していますが、初期のボタンをオンに設定していないようです。Bootstrap:初期ラジオボタンをHTMLに設定しました

は、ここに私のコードです:

<div class="btn-group" data-toggle="buttons"> 
    <label class="btn btn-info"> 
    <input checked="checked" type="radio" id="match-three" name="options">Three numbers 
    </label> 
    <label class="btn btn-info"> 
    <input type="radio" name="options" id="match-four">Four numbers 
    </label> 
</div> 

最初のボタンがchecked="checked"を持っているが、確認としてそれはスタイリングされていません。

ボタンはクリックイベントの後にはスタイリングされているので、初期ロード時に何が問題になるのかよく分かりません。

ここ

Bootplyバージョン:あなたのために働いていないものを明確にする必要がありますので、

<label class="btn btn-info active"> 
    <input checked type="radio" id="match-three" name="options">Three numbers 
</label> 

checked="checked" should work as well:あなたがHTML 5のdoctypeを使用している場合http://bootply.com/89566

答えて

15

は、単に任意の値なしcheckedを使用君は。

  • 正しい視覚状態

Reference documentationをセットするlabelactiveクラスを追加するフォームフィールド

  • に正しい状態を保証するinputchecked属性を持ちます。

  • +3

    なぜこれが受け入れられる回答ですか、それは質問に対処しません。これはブール値の属性ではありません。これはボタングループのBootstrapラジオボタンです( 'data-toggle =" buttons "ビットも関連しています)。質問はかなり明確で、サンプルコードも含まれています。 [ここにjsFiddleが問題を再現している](http://jsfiddle.net/EBWHy/42/)。 – basic6

    +0

    @ basic6あなたのデモにはエラーがあります(すべての入力は同じグループに属します)。ラジオボタンが実際にチェックされていることを示す[グループを修正するためにデモが更新されました](http://jsfiddle.net/EBWHy/43/) –

    +1

    ありがとう、私は別のグループを使用している必要があります - しかし、実際にはこの質問については何の違いもありません。どのCSSがチェックされているかを示すCSSを追加したにもかかわらず、一番上の行の2番目のラジオボタン( 'Two(チェックが付いているがクラスなし)')はここで問題になっています。これはchecked属性に関するものではなく、 "アクティブ"クラスを追加しない限り、ラジオボタンがBootstrapでチェックされているかのようにスタイリングされていないことがポイントです。 – basic6

    10

    あなたがchecked入力を認識するためのブートストラップbutton()コンポーネントをしたい場合は、最初に、あなたはこれは、グループ内の適切なボタン/ラベルにアクティブ状態を設定します。..

    $('[checked="checked"]').parent().addClass("active"); 
    

    のようないくつかのjQueryを追加する必要があります。

    +0

    質問は、Javascriptでどうやって行うのではなく、最初のHTMLに状態を設定する方法に関するものでした。しかし、Javascriptでやりたいのであれば、ラジオボタン入力フィールドで 'click()'を呼び出す方が良い解決策です。 – orrd

    +0

    ? BS JavaScriptコンポーネントに関する問題であり、プレフィックスを指定していませんでした。 HTMLやJSのソリューションの、そしてなぜ 'click()'がより良い解決策ですか?例がありますか?クリックは、クリックイベントの不要な伝播を引き起こします。 – ZimSystem

    +0

    これはもっと良い解決策だと言えます。なぜなら、これはもっと一般的な解決策であり、ブートストラップが後で彼らのスタイルのラジオボタンを実装する方法を変更した場合には壊れません。また、イベントを伝播するので、ラジオボタンの状態に基づいて変更されるページの他のコンポーネントに通知が送信されます。しかし、HTMLの読み込み時に初期状態がわかっていれば、bbengfortの解決策に固執するので、ページが読み込まれるときにラジオボタン状態が目立って反転することはありません。 – orrd

    8

    Skellyのように、アクティブクラスはブートストラップがトグルしているもので、チェック属性を調べません。あなたは

    <label class="btn btn-info active"> 
        <input checked type="radio" id="match-three" name="options">Three numbers 
    </label> 
    

    は、あなたが探しているもの、あなたを与えるだろう...しかし、JavaScriptでそれを行う必要はありません。

    +3

    ブートストラップには 'class =" ... active "と' 'が必要です。 – chowey

    +0

    Upoted。これは正解です。「アクティブ」クラスは欠けています。さもなければ、ブートストラップはラジオボタンを強調表示しません。 – basic6

    関連する問題