PHPでチェックボックスを複数個生成しています.
その時にチェックボックスをクリックした時のみ隣にある削除ボタンを押せるようにしたいのですが,私が書いたコードでは上から順番に押してくと2番目以降のボタンが有効にならない状態です.
php
1<?php 2echo "<div align='center'>"; 3 for ($i = 0 ; $i < 5 ; $i++) { 4 echo "<form method='POST' action='index.php'>"; 5 echo "<label for='chk_".$i."'>"; 6 echo "<input type='checkbox' class='chk' value='0' id='chk_".$i."' onClick='whichChk()'>"; 7 echo "</label> "; 8 echo "<input type='submit' value='削除' id='sub_".$i."'><br>"; 9 echo "</form>"; 10 } 11echo "</div>"; 12?>
チェックボックスにはchk_0
,chk_1
,chk_2
,... のようにidを振っています
また,サブミットボタンにはsub_0
,sub_1
,sub_2
,... のように振っています.
javascript
1var gl_chk = []; 2var gl_sub = []; 3 4$(function() { 5 var classCount = $('.chk').length; 6 for (var i = 0 ; i < classCount ; i++) { 7 gl_chk.push("#chk_" + i); 8 gl_sub.push("#sub_" + i); 9 $(gl_sub[i]).attr('disabled', 'disabled'); 10 } 11}); 12 13function whichChk() { 14 if ($('[class="chk"]:checked').prop('checked') == true) { 15 chkbox = $('[class="chk"]:checked').attr('id'); 16 var strchk = chkbox.split('_'); 17 var tr_chk = strchk[1]; 18 19 $(gl_chk[tr_chk]).change(function() { 20 if ($(this).is(':checked')) { 21 $(gl_sub[tr_chk]).removeAttr('disabled').focus(); 22 } else { 23 $(gl_sub[tr_chk]).attr('disabled' , 'disabled'); 24 } 25 }); 26 } 27}
JavaScript初心者なので汚いコードで申し訳ないのですが,教えてくださると幸いです.
よろしくお願いいたします.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/09/14 14:52