この customInput プラグイン(jQuery 1.6.2を使用) を使用して、ラジオ ボタンの外観をカスタマイズしています。
それはうまくいきます。
私が今抱えている問題はindex()
、選択したラジオボタンの番号を取得しようとしているだけで、常に返されること0
です。6 つのラジオ ボタンがあり、0 から 5 までの数字を探しています。
JavaScript:
$('input[name="amount"]').click(function() {
var x = $(this).filter(':checked').index();
var y = $(this).filter(':checked').val(); //<-- for troubleshooting
alert(x + y); //<-- for troubleshooting
});
奇妙なことに、val()
まだ正常に動作しており、適切な値を返します。したがって、フォーム データは常に正しい無線値を取得しています。
http://jsfiddle.net/sparky672/LdVGD/
HTML:
<fieldset id="radioset">
<input type="radio" id="radio-1" name="amount" value="Option 1" checked="checked" /><label for="radio-1" title="">Option 1</label>
<input type="radio" id="radio-2" name="amount" value="Option 2" /><label for="radio-2" title="">Option 2</label>
<input type="radio" id="radio-3" name="amount" value="Option 3" /><label for="radio-3" title="">Option 3</label>
<input type="radio" id="radio-4" name="amount" value="Option 4" /><label for="radio-4" title="">Option 4</label>
<input type="radio" id="radio-5" name="amount" value="Option 5" /><label for="radio-5" title="">Option 5</label>
<input type="radio" id="radio-6" name="amount" value="Option 6" /><label for="radio-6" title="">Option 6</label>
</fieldset>
customInput プラグインを使用しない場合は、インデックス番号が返されます。
http://jsfiddle.net/sparky672/LdVGD/1/
補足質問:
プラグインを無効にすると、、、、、またはindex()
が返されます。それ自体が の一部でカウントされているようで、実質的にカウントが 2 倍になります。なぜこれが必要なのですか?0
2
4
6
8
10
<label>
index()
<label>
プラグインはこれらに依存して機能するため、要素を削除できません。
ラジオボタン0から5がチェックされているかどうかに応じて、0から5までの数値を取得したいだけです。
助言がありますか?おそらく、どのラジオボタンが選択されているかを確認する別の方法でしょうか?
私の究極の目標?どのボタンが選択されているかに応じて、いくつかの変数を単純に変更します。