javascript禁用表单提交,直到函数为true
我有两个功能,第一个功能是检查是否选中了“条款和条件”复选框,以及是否至少选中了一个跨事件类的复选框(每个事件旁边都有一个复选框),如果两个功能条件都满足,则应启用“禁用提交”按钮,但它似乎不起作用 表单开头的代码javascript禁用表单提交,直到函数为true,javascript,html,forms,Javascript,Html,Forms,我有两个功能,第一个功能是检查是否选中了“条款和条件”复选框,以及是否至少选中了一个跨事件类的复选框(每个事件旁边都有一个复选框),如果两个功能条件都满足,则应启用“禁用提交”按钮,但它似乎不起作用 表单开头的代码 <form id="bookingForm" name"form1" action="#" method="get"> 检查是否满足这两个功能的代码,然后应启用按钮 if(checkCheckboxes() && goFurther()) { r
<form id="bookingForm" name"form1" action="#" method="get">
检查是否满足这两个功能的代码,然后应启用按钮
if(checkCheckboxes() && goFurther()) {
return true;
document.getElementById("sub1").disabled = false;
} else {
document.getElementById("sub1").disabled = true;
}
如果这是唯一需要做的事情,那么可以将检查while循环中函数的代码封装起来。另外,我看到在启用按钮之前返回true。这将在返回true时停止函数的执行。您希望在按钮启用后放置此返回语句。我知道您在两个多月前问过这个问题,但如果您仍在寻找答案,最好的方法是通过附加到表单的
onchange
事件处理程序来完成
HTML
<form id="myform">
<span>
<input type="checkbox" id="cb1"> option 1
<input type="checkbox" id="cb2"> option 2
<input type="checkbox" id="cb3"> option 3
</span>
<div>
<input type="checkbox" id="tnc"> I agree to the Terms & Conditions.
</div>
<button id="disabled" disabled>submit</button>
</form>
基本思想是将#disabled
按钮的disabled
属性设置为以下条件的否定:
document.getElementById("tnc").checked && conditionB
其中条件b
等于
document.getElementById("cb1").checked || document.getElementById("cb2").checked || document.getElementById("cb3").checked;
仅当选中#tnc
以及span中的一个输入框(#cb1
、#cb2
或#cb3
)时,才会返回true
。这意味着.disabled
属性等于!当满足上述要求时,为true(也称为false)
您需要在要检查的所有输入元素的onchange
处理程序中调用该代码。此外,您可能需要在帖子中添加实际问题。我进一步建议您查看类似于knockout.js的内容,因为它使基于此类函数的控件的启用或禁用变得非常琐碎。但是knockout.js本身并不琐碎:)您的复选框
函数工作不正常,if
语句将对象与数字进行比较,如果(document.querySelector(..!==null){…}
,您应该执行。另外,querySelector
将只返回1个元素,如果您正在搜索超过1个元素,请使用querySelector all
。您介意演示如何更改它以使其工作吗?我是一个新的javascriptYou最肯定不想这样做。基本上就是你的建议。(注意它从不加载。)这是一个while(true){}
循环。
<form id="myform">
<span>
<input type="checkbox" id="cb1"> option 1
<input type="checkbox" id="cb2"> option 2
<input type="checkbox" id="cb3"> option 3
</span>
<div>
<input type="checkbox" id="tnc"> I agree to the Terms & Conditions.
</div>
<button id="disabled" disabled>submit</button>
</form>
document.getElementById("myform").onchange = function () {
document.getElementById("disabled").disabled =
!(document.getElementById("tnc").checked &&
( document.getElementById("cb1").checked ||
document.getElementById("cb2").checked ||
document.getElementById("cb3").checked ) );
}
document.getElementById("tnc").checked && conditionB
document.getElementById("cb1").checked || document.getElementById("cb2").checked || document.getElementById("cb3").checked;