Javascript 是否可以在jquery中禁用单个单选按钮?
是否可以使用jquery禁用组中的单个单选按钮Javascript 是否可以在jquery中禁用单个单选按钮?,javascript,jquery,html,Javascript,Jquery,Html,是否可以使用jquery禁用组中的单个单选按钮 <div id="divAddNewPayrollItemWages" title="Add New Payroll Item"> <strong>Wages</strong><br /> Do you want to set up a payroll item to track wages, annual salary, commissions or bonuses?<br /
<div id="divAddNewPayrollItemWages" title="Add New Payroll Item">
<strong>Wages</strong><br />
Do you want to set up a payroll item to track wages, annual salary, commissions or bonuses?<br />
<input type="radio" name="rblWages" value="Hourly" />Hourly Wage<br />
<input type="radio" name="rblWages" value="Annual" />Annual Salary<br />
<input type="radio" name="rblWages" value="Commission" />Commission<br />
<input type="radio" name="rblWages" value="Bonus" />Bonus<br /><br />
<input type="button" value="Back" disabled="disabled" />
<input type="button" value="Next" onclick="AddNewPayrollItemWages_Next();" />
<input type="button" value="Finish" disabled="disabled" />
<input type="button" value="Cancel" onclick="AddNewPayrollItemWages_Cancel();" />
</div>
<div id="divAddNewPayrollItemHourlyWages" title="Add New Payroll Item">
<strong>Wages</strong><br />
Is this item for regular, overtime, sick or vacation pay?<br />
<input type="radio" name="rblHourlyWages" value="Regular" />Regular Pay<br />
<input type="radio" name="rblHourlyWages" value="Overtime" />Overtime Pay<br />
<input type="radio" name="rblHourlyWages" value="Sick" />Sick Pay<br />
<input type="radio" name="rblHourlyWages" value="Vacation Pay" />Vacation Pay<br /><br />
<input type="button" value="Back" onclick="" />
<input type="button" value="Next" onclick="AddNewPayrollItemWages_Next();" />
<input type="button" value="Finish" disabled="disabled" />
<input type="button" value="Cancel" onclick="AddNewPayrollItemHourlyWages_Cancel();" />
</div>
我试图实现的是,当用户从第一个对话框中选择“年度”时,脚本将打开第二个对话框,并从列表中禁用超时单选按钮。此时我唯一的问题是禁用单选按钮,其他一切都很好。您要做的是在禁用另一个单选按钮的单选按钮之间建立关系。我会使用数组,但那完全是另一个派 你能做的就是检查无线电组并使用if语句
Array.prototype.forEach.call(document.querySelectorAll("[type='radio']"), function(x) {
x.addEventListener("click", function() {
if (x.value === "Annual") { //or any other field
document.querySelector("['OTHER_RELATED_FIELD']").disabled = true;
}
});
});
jQuery方式:
$("[type='radio']").on("click", function() {
if (this.value === "Annual") $("[name='rblHourlyWages'][value='Overtime']").prop("disabled", true);
});
请注意,在运行每个单击功能之前,您必须将所有单选按钮重置为已启用,以便您可以更改单选按钮并重新启用该选项。这应该可以做到。基本上,使用jQuery查找名为rblHourlyWayers、值为加班的输入并禁用它 $'input[name=RBLHourlySweers][value=加班]'.prop'disabled',true; 固定工资 加班费 病假工资
像这样的假期工资应该行得通。它允许用户再次更改收音机并重新启用另一个
$('[name=rblWages]').change(function(){
var isAnnual = this.value == 'Annual';
$('[name=rblHourlyWages][value=Overtime]').prop('disabled', isAnnual);
});
如果用户再次更改第一个收音机,怎么办?然后您添加一行以启用所有字段,或在每次单击时运行一个函数以恢复到原始状态不是一个bug,只是OP尚未考虑的一个功能,因此,我没有说明。但我要提醒一下,如果用户无法顺利撤销iTunes,这将是一个bug,这并没有禁用单选按钮。您使用的是哪个版本的jQuery?你确定这段代码正在执行吗?jquery-2.1.3,我放了一个调试器;命令在混音中单步通过它,它确实击中了线,但没有禁用按钮。真奇怪。当您运行上面的代码段时,它会禁用吗?键入$'input[name=RBLHourlyWayers][value=加班]'时,控制台中是否返回任何内容?应该能拿回一个元素。还要注意的是,这看起来不会有太大的不同,唯一应该发生的事情是单选按钮不能被单击或以其他方式更改。@JohnSchultz不需要再次搜索DOM来查找单选值。您应该已经有权访问事件处理程序中的元素