Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何同时禁用和启用单选按钮_Javascript_Php_Jquery_Html_Mysql - Fatal编程技术网

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

Javascript 如何同时禁用和启用单选按钮,javascript,php,jquery,html,mysql,Javascript,Php,Jquery,Html,Mysql,我有几个单选按钮是从mysql数据库显示的。我试图实现的是,当我在选择单选按钮后单击“提交”按钮时,它将被禁用;当我单击另一个单选按钮时,先前禁用的单选按钮将被启用,而当前选择的单选按钮将被禁用。 显示按钮的我的代码: <form action=""> <?php foreach ($sql->results() as $sql) {?> <inp

我有几个单选按钮是从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
                        }

                        ?>
我曾尝试启用和禁用JSFIDLE上的一些单选按钮,但它只适用于不同的id,而我的单选按钮只有一个id


编辑:已经明确,ID必须是唯一的。我已经改变了。我有两个建议

html中的多个元素不能具有相同的id。请换一下 您可以使用css来实现上述功能
我对你到底想做什么感到有点困惑,但我会给出每个解释的解决方案

您应该能够使用此代码获得想要的效果,而无需使用任何id或名称属性:

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

$(":radio").on("change", function() {
    $(":submit:disabled").prop("disabled", false);
    $(this).next(":submit").prop("disabled", true);
});
$(":radio").on("change", function() {
    $(":submit:disabled").prop("disabled", false);
});
方法2:如果按钮仅在单击后才被禁用,则使用以下代码:

$(":radio").on("change", function() {
    $(":submit:disabled").prop("disabled", false);
    $(this).next(":submit").prop("disabled", true);
});
$(":radio").on("change", function() {
    $(":submit:disabled").prop("disabled", false);
});
。然后让按动按钮的功能来处理禁用按钮的问题

说明:基本上,每次单击单选按钮时,您都希望打开任何当前禁用按钮的disabled属性。最简单的方法是选择所有禁用的按钮并更改disabled属性。完成后,您可以将禁用状态重新应用于与单选按钮关联的状态,或者在单击按钮时执行此操作。无论哪一个匹配您要完成的目标:

注意:这也是假设您在页面上没有任何其他单选按钮和提交按钮。如果这样做,则需要确定jQuery选择器的范围。最简单的方法是给出您的元素和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);
});

您的单选按钮不能只有一个id。这是无效的HTML,它会使许多JS和jQuery函数无法正常工作。好吧,我想是的,但我可以使用这些值吗?名称应该相同,以使它们分组,但id不能是sameI,我甚至不知道为什么我会投反对票。我只是问了一个简单的问题,结果被否决了。在这里问问题真的很难。在很多人看来,有些人对问题的质量要求太严格了。避免否决票的最好方法是1非常清楚你在问什么,2写问题以便易于阅读,例如,代码的格式良好,所有相关代码显示等,3表明你在试图自己解决问题方面做了一些努力,即,显示你的工作:。你的问题很好地解决了大部分问题。对我来说似乎是个合理的问题。我想要达到的是这个。首先,所有按钮都已启用,因此当单击并提交其中一个按钮时,它将被禁用,而其他按钮仍处于启用状态。如果单击另一个按钮,则先前禁用的按钮将被启用,而当前选定的按钮将被禁用。例如,A、B、C是按钮,并且都已启用。如果我单击A,它将被禁用,而B和C仍处于启用状态,那么如果我单击B,A将被启用,B将被禁用。您的答案帮助最大。谢谢。啊。可以我误解了。我认为单选按钮在逻辑上起了某种作用。我将更新我的答案。在您的帮助下,我成功地使它正常工作:$document.readyfunction{$.me.clickfunction{$this.prop'disabled',true;};};我给单选按钮分配了一个类,并从那里开始工作,所以现在当我单击单选按钮时,它会禁用,而其余的保持启用状态。您以前的代码不能很好地处理submit,所以我暂时省略了submit。再次感谢。