[英]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.