0

次のように生成された2つのチェックボックスがあります。

  <table>
    <?php foreach ($invited_members as $mem) : ?>
        <?php if ($mem['mc_role'] != 'c') : ?>
                            <tr>
                                <td style="width:40px;text-align:center"> attend  </td>
                             <td style="width:40px;text-align:center"><input name="p_members[]" id="p_members" type="checkbox"  value="<?php echo $mem['member_id']; ?>" <?php if ($mem['mm_present'] == 1) echo 'checked="checked"'; ?> <?php if (!$this->isSupervisor or $meeting_info['meeting_status'] != 2) echo 'disabled="disabled"';?> onclick="change(this,'#on_p_members');"/></td>
                              <td style="width:40px;text-align:center"> E-attend  </td>
                                <td style="width:40px;text-align:center"><input name="on_p_members[]" id="on_p_members" type="checkbox" value="<?php echo $mem['member_id']; ?>" <?php if ($mem['mm_present'] == 2) echo 'checked="checked"'; ?> <?php if (!$this->isSupervisor or $meeting_info['meeting_status'] != 2) echo 'disabled="disabled"'; ?>onclick="change(this,'#p_members');"/></td>
                                <td style="width:50px;text-align:center"><img src="<?php echo base_url() . 'avaters/' . $mem['mem_image']; ?>" height="38" width="38" /></td>
                                <td><?php echo stripslashes($mem['mem_real_name']); ?></td>
                            </tr>
        <?php endif; ?>
    <?php endforeach; ?>
                </table>

ユーザーがそのうちの1つをチェックしてもう1つを無効にしたときに欲しいので、jqueryの使用に疲れました

function change(p_members,x)
{


 if ($(p_members).attr('checked'))
     { 

         $(x).attr('checked',false);
         $(x).attr('disabled',true);

     }
     else 
         {               
              $(x).removeAttr('disabled');

         }
  }

しかし、それは正しく機能しませんでした。2 行目のユーザーがチェックボックスを 1 つオンにすると、その前の行のチェックボックスの 1 つが無効になります。どうすればこれを解決できますか?

4

2 に答える 2

1

あなたはこれを試すことができます...

 $("input:checkbox").click(function () {
    $("input:checkbox").not($(this)).attr('disabled', 'disabled');
});

これは一般的な形式です。要素または ID の親を追加して、目的のチェックボックス リストを取得できます。

于 2012-06-16T16:22:16.053 に答える
0

これは、jQueryのすべてのバージョンでそれを行う必要があります。

HTML

<input type="checkbox" id="p_members" />
<input type="checkbox" id="on_p_members" />

JavaScript

$('#p_members').change(function() {
    if($(this).is(":checked")) {
        $('#on_p_members').attr('disabled', 'disabled');
    } else {
        $('#on_p_members').removeAttr('disabled');
    }
});

このjsFiddleを見て、実際の動作を確認してください:http: //jsfiddle.net/s3pRy/

于 2012-06-16T16:02:05.203 に答える