繁体   English   中英

如何在“图像”类型的输入上调用onclick函数?

[英]How to call an onclick function on an input of type “image”?

因此,在我的代码中,我输入的是“ Image”类型。

<div class="icon" id="button_dictionary">
    <form>
        <input class="buttonDictionary" type="image" src="icone_dicionario.jpg" value="" id="inputDictionary"> 
        <label for="inputDictionary">Dictionary</label>
    </form>
</div>

我希望当用户单击它时,将显示以下表单:

<form action="http://www.google.pt/search" id="form-dictionary">
     (...)
</form>

我已经做了一个Javascript函数来实现它:

function showsDictionaryForm(){
            if(document.querySelector('#form-dictionary').style.display == "none")
                document.querySelector('#form-dictionary').style.display = "inline-block";
            else
                document.querySelector('#form-dictionary').style.display = "none";
}

问题是当我尝试处理onClick事件时,以便在发生这种情况时调用上面的函数。 该功能运行良好,因为对于“提交”输入类型,它可以正常工作。

无效的解决方案:

我尝试过这样的事情:

document.querySelector('#button_dictionary').onclick = showsDictionaryForm;

而且,在函数的末尾添加return false

 <input class="buttonDictionary" type="image" src="icone_dicionario.jpg" value="" id="inputDictionary" onClick="showsDictionaryForm()">

他们都没有一个很好的工作。 表格出现,但消失得最快。 在我看来,该表格是经过计算的,但是提交按钮后,页面会以类似的方式重新加载,然后页面又消失了。

showsDictionaryForm(event)事件处理程序内部,使用event.preventDefault()阻止发生默认行为(在您的情况下,表单正在提交到服务器)。

我建议在showsDictionaryForm上使用类操作而不是内联样式。 例如,您可以全局定义:

.hidden {
  display: none !important;
}

并使用它来显示/隐藏form-dictionary形式。

暂无
暂无

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

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