2017-02-22 20 views
0

クリックして価格を表示するラジオボタンをいくつか作成しました。価格はこのように表示されているラジオボタンがチェックされていない

<label for='<?php echo $price; ?>' class="tabs"> 
    <input type="radio" name="j" class="radioBtn" id='<?php echo $price; ?>' value="<?php echo $price; ?>" onclick="calculate(this);" /> 
    <?php echo $number; ?> 
    </label> 

私は以下の通りです使用していたコード..:

<span class="prices" id="output"></span> 

function calculate(obj) { document.getElementById("output").innerHTML = obj.value;} 

価格やボタンによっては正しく動作しますが、私されています正しいボタンが選択されていることを示すためにラベルをスタイルする必要があります。 DOMでは、ラジオ入力がチェックされていますが、HTMLではレンダリングされていません。

また、最初のチェックボックスをデフォルトとして選択する必要があります。

誰でも正しい方向に私を向けることができますか?

水田

+0

使用しているHTMLのバージョンによっては、入力ボックスのid属性が無効である可能性があります。たとえば、HTML4では、IDは文字で始まる必要があります。だから、もしあなたが2つの同一の価格を持っていたならば、価格はユニークな識別子の最良の選択ではないでしょう。 – clarmond

+0

すべての価格は現時点では異なります。これがラジオ入力がチェックされて表示されない理由ですか? – paddywinz

+0

私はPHP変数なしでこのコードの静的バージョンを作成しましたが、うまくいきました。レンダリングされたHTML全体を見ることは可能でしょうか? – clarmond

答えて

1

grofar.comのサイトは綺麗です。あなたは、スタイリングがラベル上で動作していないと言うとき、正確にはどういう意味ですか?別の色、フォントなどを適用しようとしていますか?

デフォルトで最初のオプションを選択する場合、いくつかのオプションがあります。最初は、PHPを使用して最初のものを決定し、checked属性をinput要素に追加することです。たとえば、あなたはループを行っている場合、ループカウンタが1

目のオプションは、最初のボックスを選択するために、jQueryのを使用することである場合にはchecked属性を設定するために、そして/ if文を使用します。

$(function() { 
    $("input[name='j']:first").prop("checked", true); 
}); 

しかし、その方法では、calculate関数は呼び出されないため、価格は更新されません。

$(function() { 
    $("input[name='j']:first").click(); 
}); 

ボックスを選択し、価格を更新します:

第三の選択肢は、最初のボックスのクリックをシミュレートするためにjQueryを使用することです。

+0

ありがとうあなたはそんなに、3番目のオプションは魅力を働いた。 – paddywinz

+0

私は、チェックされたラジオ・ラベルを別の色にしようとしていて、入力自体を削除しています。しかし、チェックされた入力がなければ、jQueryを使用して親クラスにクラスを追加することはできません – paddywinz

+0

入力を削除する代わりに、それを隠すことができます( 'onclick =" calculate(this); $(this).hide() "onclick =" calculate(this); $(this).prop( 'disabled'、true) '' '')?その後、新しいスタイルを親に適用することができます。 – clarmond

関連する問題