为什么这个JavasScript验证在Firefox中不起作用
Why is this JavasScript validation not working in Firefox
我有一个带有文本输入和按钮的表单。
有一点JavaScript可以验证用户名是否为null。如果它为空,它将显示一条验证消息,否则将提交表单。
问题是onclick在Firefox中甚至不会启动。它适用于其他所有浏览器。
有人能指出我哪里错了吗?非常感谢。
HTML:
<form name="myForm" action="TestController">
<input type="text" width="50" name="username" />
<button onclick="submitForm()">Go</button>
<span class="errSpan"></span>
</form>
JavaScript:
(function(NAMESPACE){
NAMESPACE.submitForm = function(){
console.log('invoked');
window.event.preventDefault();
console.log(window.myForm.username.value);
if(window.myForm.username.value === "")
document.getElementsByClassName('errSpan')[0].innerHTML = 'cannot be null';
else {
document.myForm.submit();
}
}
})(window);
这是JsFiddle 的链接
在firefox窗口中,event未定义,您的代码失败并出现错误。
使用addEventListener为表单添加提交事件,并从按钮中删除onclick语句。
window.myForm.addEventListener('submit', function (e) {
e.preventDefault();
//any code what you want
});
首先应该将事件传递给submitForm()
方法。
onclick="submitForm(event)"
然后使用该事件参数调用preventDefault
NAMESPACE.submitForm = function(e){
console.log('invoked');
e.preventDefault();
console.log(window.myForm.username.value);
...
}
或者使用onsubmit
方法调用提交函数并停止事件传播,即提交表单。
相关文章:
- 为什么javascript:void(0)在Firefox中不起作用
- jpm的默认Firefox路径没有'不起作用
- 设置 CSS 背景在 Firefox 中不起作用
- document.getElementById 在 Firefox 中不起作用
- firefox中的CSS动画不起作用
- event.stopPropagation()在firefox javascript中不起作用
- 复选框.onClick在firefox中不起作用
- window.close();在Chrome和Firefox中不起作用
- JQuery在Chrome中不起作用,但Firefox很好
- 选择“行在 Chrome 和 Firefox 中不起作用(生成的代码)”
- Javascript 按键事件在 Firefox 中不起作用
- window.dispatchEvent 在 Firefox、Safari 或 IE 中不起作用
- 更改 Angular 2 中选择的事件在 Firefox 和 Edge 中不起作用
- jQuery SlideToggle() 在 FireFox 中不起作用,在 Chrome 中工作
- 动态关键帧插入在 IE 或 Firefox 上不起作用
- 使用 nameProp 的 JQuery 图像滚动更新在 Firefox 和 Chrome 中不起作用
- Javascript键码在Firefox中不起作用,但在chrome中运行良好
- HTML5<视频>元素在Firefox、Opera和Safari中不起作用
- 输入类型的图像在Internet Explorer中不起作用,但在Chrome和Firefox中起作用
- 使用量角器双击在chrome中效果良好,但在firefox中不起作用