繁体   English   中英

输入的禁用属性使其“忘记” onclick 事件

[英]Disabled attribute on input makes it "forget" onclick event

我有这个 JS/HTML

<div>
    Are you sure ? <input type="checkbox" id="Confirm" onClick="doCheck();"/>
</div>

<input value="3" id="SubmitT" type="button" onClick="MainFunction(34);" disabled>

#edited:错字代码

function doCheck(){
    $("#SubmitT").prop('disabled',$("#Confirm").is(":checked"));
}

我期望它做的是设置/取消设置禁用属性和MainFunction(34)根据禁用的存在来触发或不触发。 它的作用是在我切换复选框后,它忘记了绑定到 onclick 的事件,不断抛出有关MainFunction未知的错误。

jQuery 的版本是 1.11.1

由于您被标记为 jQuery,因此最好在 jQuery 中使用change()事件处理程序

 $('#Confirm').change(function() { $("#SubmitT").prop('disabled', !this.checked); })
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <div> Are you sure ? <input type="checkbox" id="Confirm"/> </div> <input value="3" id="SubmitT" type="button" onClick="MainFunction(34);" disabled>

您显示的代码工作正常。

您确定您的MainFunction没有问题吗? 只需使用您的代码并添加一个MainFunction ,它只需alert输入就可以正常工作并且不会引发错误,如下面的代码片段所示。

此外,您不想在“您确定吗?”时单击提交按钮。 复选框被选中? 为此,我将其更改为!$("#Confirm").is(":checked")

 function doCheck() { $("#SubmitT").prop('disabled', !$("#Confirm").is(":checked")); } function MainFunction(input) { alert(input); }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div> Are you sure ? <input type="checkbox" id="Confirm" onClick="doCheck();" /> </div> <input value="3" id="SubmitT" type="button" onClick="MainFunction(34);" disabled>

尝试做这样的事情:

document.getElementById('SubmitT').disabled = true;

就像您通过 js 将其设置为禁用 ..(在页面加载时执行该命令)并使用MainFunction()控制禁用的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM