2011-08-09 11 views
1

動的に作成された画像をクリックして、チェックされたラジオbtnを変更します。これは私の画像生成PHPです:動的に作成された画像にラジオボタン

<?php if($subject_list){ 
     foreach ($subject_list as $item):?> 
      <input type="radio" name="subjectagendaactivity" value="male" /> 
      <img src="/static/images/school/students/subjects/island/island_<?php echo $item['id'];?>_agenda.png"/> 
     <?php endforeach;}?> 

だから私のイメージは、このように生成され、これは私がjQueryの中で作られたコードに変更することができることですが.cheked:

$(this).click(function() { 
       $('input:radio[name=subjectagendaactivity]')[0].checked = true; 
      }); 

私がする必要が[0]を$(this)などに変更して、右の画像をクリックするとラジオbtnがチェックされます。

+0

'img'タグにはIDやクラスが付いていますか? –

+0

私は1つ、問題はない場合、私はIDを追加することができます! –

答えて

1

うこの作品のようなもの、あなたのために?:http://jsfiddle.net/FsshJ/

$(this).click(function() { 
       $('input:radio[name=subjectagendaactivity]').attr("checked", true); 
      }); 
+0

ありがとう!それはうまくいっている! –

0

このお試しください:唯一の欠点は、それがimginputの両方を必要とすることである

$('input:radio[name=subjectagendaactivity]').each(function(index) { 
if(index == 0) 
{ 
    $(this).attr("checked","checked"); 
    return; 
} 
}); 
+0

そうすると、最後のボックスが常にチェックされます –

+0

このコードはどこで実行されますか? 'これは何を指していますか? – ShankarSangoli

+0

ありがとうございました。ありがとうございます。問題はあなたが私のやり方を見たいと思ったらAndrew peacockによって解決されました –

0
$(this).click(checkIt($(this))); 



// Elsewhere 
function checkIt(rBtn) { 
    rBtn.checked = true; 
} 
+0

これは私のコードではうまくいきません。 –

0

これを試してみてくださいをIDを持つしかし、あなたが望むならば、あなたはそれを何かに変えることができます。あなたがチェックしたいのチェックボックスを想定し

+0

$( "input:radio [name = subjectagendaactivity]")[0] .attrは関数ではありません –

+0

今すぐ試してみてください – kleinohad

+0

まだ動作していなかったかもしれません。とにかく問題を解決していただきありがとうございます! –

0

は常に前要素あなたは上をクリックしている画像です:jQuery's traversal methodsを見てみましょう

$('img').click(function() { 
    var $check = $(this).prev(':checkbox'); 

    if($check.is(':checked'){ // Already checked? Uncheck it! 
     $check.removeAttr('checked'); 
    } 
    else{ 
     $check.attr('checked','checked'); 
    } 
}); 

。慣例によりチェックボックスをつかむことができるものを見つけることができるはずです。

関連する問題