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