Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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中的e.preventDefault函数不适用于复选框?_Javascript_Html_Browser - Fatal编程技术网

为什么javascript中的e.preventDefault函数不适用于复选框?

为什么javascript中的e.preventDefault函数不适用于复选框?,javascript,html,browser,Javascript,Html,Browser,在编写代码时,我遇到了一个自己无法解决的问题。嗯,如果checkbox.checked==false,它对我不起作用,但是如果checkbox.checked==true起作用,即使没有选中该复选框。 我在Opera和Edge上查过了。这是一个普遍的问题吗?有没有办法绕过这个问题 JSFIDLE:[您的代码中有一个拼写错误:querySelector应该是querySelector。 还可以使用getElementById通过元素的id属性获取元素 这两个版本都适用于我测试过的Firefox、C

在编写代码时,我遇到了一个自己无法解决的问题。嗯,如果checkbox.checked==false,它对我不起作用,但是如果checkbox.checked==true起作用,即使没有选中该复选框。 我在Opera和Edge上查过了。这是一个普遍的问题吗?有没有办法绕过这个问题


JSFIDLE:[

您的代码中有一个拼写错误:querySelector应该是querySelector。 还可以使用getElementById通过元素的id属性获取元素

这两个版本都适用于我测试过的Firefox、Chrome和Safari浏览器

如果使用preventDefault,则事件处理程序完成后将还原选中状态。因此,该事件处理程序内的任何更改都将被还原。解决方法是在setTimeout调用内切换状态,请参见下面的checkbox3示例

让idCheckbox=document.getElementByIdcheckbox; idCheckbox.addEventListenerclick,函数E{ e、 防止违约; }; 让idCheckbox2=document.querySelectorcheckbox2; idCheckbox2.addEventListenerclick,函数e{ e、 防止违约; }; 让idCheckbox3=document.querySelectorcheckbox3; idCheckbox3.addEventListenerclick,函数e{ e、 防止违约; 设置超时=>{ 如果idCheckbox3.checked==false{ idCheckbox3.checked=true; }否则{ idCheckbox3.checked=false; } }, 50; }; 接受复选框1 接受复选框2 接受复选框3
document.querySelecotr拼写在编程中很重要。在询问原因之前,请始终检查浏览器控制台是否存在错误。解决了这个问题,您的代码就会工作。您还应该始终发布问题本身中的所有相关代码,以正确的反应告诉您,如果不发布rel,您就无法发布JSFIDLE链接问题中的evant代码不是将链接标记为代码。如果您希望网站上的人帮助您,请遵守网站规则。问题的全部内容(包括任何必要的代码)必须包含在您的问题中,而不仅仅是链接。请在问题中添加一个。更多:您可以使用Stack Sn使您的MCVE可在现场运行Ipets the[]toolbar button;。很抱歉,重写代码时出现了一个简单的错误。它仍然无法解决我的问题,因为checkboc.checked函数不起作用。我们都知道编程。问题是,当你问不出明确的问题时,很难帮到你。请站在我的立场上——我对你的问题一无所知,希望帮助你你解决它。我的帮助只会和你给我的问题描述一样好。在这种情况下,你给出的描述很差,这使我很难提供帮助。我们需要一个实际的问题描述,包括尽可能多的信息。例如,你说checkboc.checked函数不起作用-我必须问m你自己什么不起作用?确切的问题是什么try:var idCheckbox=document.querySelectorcheckbox;idCheckbox.addEventListenerclick,函数e{e.preventDefault;ifidCheckbox.checkbox==false{idCheckbox.checkbox=true;}否则{idCheckbox.checkbox=false;},false;我在回答中包含了该版本。这两个版本都适用于我最近使用的所有浏览器Firefox、Chrome和Safari。如果我双击您的代码中有拼写错误,opera在EDGE上不起作用:JSFIDLE中的querySelecotre.preventDefault不起作用,因为我犯了一个错误,但在opera和EDGE复选框中仍然不起作用。checked==true/false,checkbox.checked=true/false