如何在类型为“”的输入上调用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
表单。
相关文章:
- 如何从模块链中调用函数.导出到节点中
- 调用函数内部的函数
- 在javascript中调用c函数
- DropDownListFor赢得't在更改时调用函数
- Javascript页面调用函数
- 在动画结束之前调用函数
- 允许父窗口在其不同域的子iframe上调用函数
- 运行Infinite Scroll后调用函数时出现问题
- JavaScript:在调用函数的文本输入上按enter键
- 使用大括号和不使用bracs调用函数的区别
- javascript在事件上调用函数
- 从index.html调用函数,该函数无限循环
- 从带参数的字符串变量调用函数中的函数
- 为什么 JS 不在滚动时调用函数
- 是否可以在不更改上下文的情况下调用函数.apply
- 如何在ES6类中使用参数调用函数
- AngularJS:调用函数时编号不更新
- JavaScript中的立即调用函数表达式(IIFE)-传递jQuery
- 在JavaScript中调用函数时自定义此选项
- 调用函数中声明的变量