0

以下のページコード:

<input type="radio" class="direct" name="r1" value="first" />
    <span class="proxy">radio1</span>
<input type="radio" class="direct" name="r1" value="second" />
    <span class="proxy">radio2</span>

以下のjsコード:

$('.direct').click(function(e) {
    var obj = $(this).parent(),
        value = obj.find('input:checked').val();
    if(value){
        alert('you click ' + value + ' button');
    }else{
        alert('you did not click a button');
    }
});
$('.proxy').click(function(e) {
    $(this).prev().click();
});​

これがJSFiddleの例です

私の質問は、スパンテキストをクリックしてもラジオボタンを直接クリックするように機能しないのはなぜかということです。

4

2 に答える 2

2

属性が正しい入力に設定されたラベルを使用すると、forこの問題をすべて回避できます。

<input type="radio" class="direct" name="r1" id="r11" value="first"/>
<label class="proxy" for="r11">radio1</label>
<input type="radio" class="direct" name="r1" id="r12" value="second"/>
<label class="proxy" for="r12">radio1</label>​​​​​​​​​

デモ

于 2012-09-25T14:25:06.230 に答える
2

前に言ったように、少なくとも私にとっては、質問は明確ではありませんでした。ただし、次のスパンをクリックしたときに無線をチェックしたい場合は、次の方法で行うことができます。

$('.proxy').click(function(e) {
    $(this).prev().attr('checked', true)
});​
于 2012-09-25T14:32:44.240 に答える