【问题标题】:Is there a way to allow only one check box on each row to me checked?有没有办法只允许我检查每一行上的一个复选框?
【发布时间】:2013-01-08 06:22:28
【问题描述】:

您好,我正在尝试创建一个表单,用户可以在其中为一周中的每一天选择上午或下午会话,星期一除外,只有上午可用。

我的代码目前是:

    <table border="0" id="EnrollPreSes">        
    <tr>
        <td>Day</td>
        <td>AM <br/> 8:30 - 11:30 </td>
        <td>PM <br/> 12:00 - 3:00</td>
    </tr>
    <tr>
        <td>Monday</td>
        <td><input type="checkbox" name="Prefses[]" id="mam" value="MonAM"></td>
        <td></td>
    </tr>
    <tr>
        <td>Tuesday</td>
        <td>
                 <input type="radio" name="Prefses" value="TueAM">  
        </td>
        <td>
            <input type="radio" name="Prefses" value="TuePM">
        </td>
    </tr>
    <tr>
        <td>Wednesday</td>
        <td>
            <input type="radio" name="Prefses" value="WedAM">
        </td>
        <td>
            <input type="radio" name="Prefses" value="WedPM">
        </td>
    </tr>
</table>

在接下来的一周中,等等,有没有办法只允许选择每天的上午或下午时段,然后作为数组发送到我的 php 脚本?

【问题讨论】:

  • 为什么不使用单选按钮来选择 AM/PM?
  • 这是否可行,例如周一上午周二下午周三下午周四周五上午?
  • 是的,每一行都有自己的链接复选框,这意味着您必须请求 7 天的帖子变量(链接时只有 7 个复选框响应为一个)

标签: php html forms input radio-button


【解决方案1】:

为每行单选按钮赋予相同的名称,此处为 jsFiddle:

http://jsfiddle.net/QTCy2/8/

<form id="EnrollPreSes">
<table border="0" id="EnrollPreSes">        
    <tr>
        <td>Day</td>
        <td>AM <br/> 8:30 - 11:30 </td>
        <td>PM <br/> 12:00 - 3:00</td>
    </tr>
    <tr>
        <td>Monday</td>
        <td>
        <input type="radio" name="monday" value="MonAM">  
        </td>
        <td>
            <input type="radio" name="monday" value="MonPM">
        </td>
    </tr>
    <tr>
        <td>Tuesday</td>
        <td>
                 <input type="radio" name="tuesday" value="TueAM">  
        </td>
        <td>
            <input type="radio" name="tuesday" value="TuePM">
        </td>
    </tr>
    <tr>
        <td>Wednesday</td>
        <td>
            <input type="radio" name="wednesday" value="WedAM">
        </td>
        <td>
            <input type="radio" name="wednesday" value="WedPM">
        </td>
    </tr>
</table>

       <input type="submit" value="Submit">

</form>

$(function(){
    $('#EnrollPreSes').on('submit', function() {
       alert($(this).serialize()); //Send to your PHP script
        return false; 
    });
});

【讨论】:

    【解决方案2】:

    this 使用 jquery 回答中指出,您可以为您的复选框添加唯一的类,然后:

    var $unique = $('input.unique');
    $unique.click(function() {
    $unique.filter(':checked').not(this).removeAttr('checked');
    

    });

    【讨论】:

    • 在文档头部的脚本标签之间 并且不要忘记将 class="unique" 添加到您的复选框并包括 jquery在页面顶部
    【解决方案3】:

    拥有一台 Am 收音机和一台 Pm 收音机会更容易,但如果你真的想要的话:

    $(document).ready(function () {
        $('input > radio').click(function () {
            $(this).siblings().removeAttr('checked');
        )}
    )}
    

    我知道你有一个星期一的复选框,所以它可以适应两者。

    【讨论】:

    • 这会被添加到页面上的
    • 完全正确。但是您还必须包括 jquery :) 就这么简单
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多