Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 是否可以在jquery中禁用单个单选按钮?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 是否可以在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 /

是否可以使用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 />
    <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" />&nbsp;&nbsp;
    <input type="button" value="Next" onclick="AddNewPayrollItemWages_Next();" />&nbsp;&nbsp;
    <input type="button" value="Finish" disabled="disabled" />&nbsp;&nbsp;
    <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="" />&nbsp;&nbsp;
    <input type="button" value="Next" onclick="AddNewPayrollItemWages_Next();" />&nbsp;&nbsp;
    <input type="button" value="Finish" disabled="disabled" />&nbsp;&nbsp;
    <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来查找单选值。您应该已经有权访问事件处理程序中的元素