如何同时禁用和启用单选按钮

时间:2015-03-17 18:06:04

标签: javascript php jquery html mysql

我有一些从mysql数据库显示的单选按钮。我想要实现的是当我在选择单选按钮后单击提交按钮时,它被禁用,当我单击另一个单选按钮时,将启用先前禁用的单选按钮,并且将禁用当前选择的单选按钮。 我显示按钮的代码:

    <form action="">
                        <?php
                        foreach ($sql->results() as $sql) {?>    
 <input type="radio" name="session_id" id="cur" value="<?php echo $sql->id; ?>">  <?php echo $sql->title;?><?php
}?>
<input type="submit" value="submit" onclick="set_type('a')">

                        </form>
                        <?php
                        }

                        ?>

我试过在jsfiddle上启用和禁用一些单选按钮,但它只适用于不同的ID,而我的单选按钮只有一个id。

编辑:已经明确,ids必须是唯一的。我已经改变了。

2 个答案:

答案 0 :(得分:0)

我有两个建议。

  1. html中的多个元素不能具有相同的ID。请改变它
  2. 你可以用css来实现同样的功能

答案 1 :(得分:0)

我对你想要做的事情感到有些困惑,但我会为每个解释提供一个解决方案。 :)

您应该能够使用此代码获得所需的效果,而无需使用任何idname属性:

方法#1:如果您希望在选择相关的单选按钮时禁用这些按钮,请使用以下代码:

$(":radio").on("change", function() {
    $(":submit:disabled").prop("disabled", false);
    $(this).next(":submit").prop("disabled", true);
});

方法#2:如果按钮仅在单击后被禁用,则使用此代码:

$(":radio").on("change", function() {
    $(":submit:disabled").prop("disabled", false);
});

。 。 。让click功能(可能)与按钮绑定,处理禁用它。

说明:基本上,每次单击单选按钮时,都要转动当前禁用按钮的disabled属性。 。 。最简单的方法是选择所有禁用的按钮并更改disabled属性。完成后,您可以将disabled状态重新应用到与单选按钮关联的状态(或者,当单击按钮时执行此操作... ...无论哪个匹配您要完成的任务:) )。

注意:这也假设您没有任何其他单选按钮并在页面上提交按钮。 。 。如果你这样做,你将需要“范围”jQuery选择器。最简单的方法是提供<form>元素和id(我将在此示例中使用“FORM_ID”),然后将代码更新为:

$("#FORM_ID").find(":radio").on("change", function() {
    $("#FORM_ID").find(":submit:disabled").prop("disabled", false);
    $(this).next(":submit").prop("disabled", true);
});

修改

根据您的澄清,此代码应该可以实现您的目标:

$(":submit").on("click", function() {
    $(":submit:disabled").prop("disabled", false);
    $(this).prop("disabled", true);
});