如何将事件对象传递给Javascript中的函数?
function check_me() {
//event.preventDefault();
var hello = document.myForm.username.value;
var err = '';
if(hello == '' || hello == null) {
err = 'User name required';
}
if(err != '') {
alert(err);
$('username').focus();
return false;
} else {
return true; }
}
在Firefox中,当我尝试提交抛出了错误,并且将焦点回到元素的空值。但同样的事情不会发生在IE中,因为它会引发错误,并且在点击确定并发布表单(返回true)之后。
我该如何避免这种情况?我想避免使用event.preventDefault(),但我不知道如何使用这种方法做到这一点。我试图通过检查(事件)..但它没有奏效。我正在使用Prototype js。
(我知道如何当我绑定在JavaScript中。点击函数传递事件..而不是使用jQuery调用的onclick中的HTML ..,但我有调试这段代码)
尝试制作的onclick JS使用“回归”,以确保所需的返回值被使用......
<button type="button" value="click me" onclick="return check_me();" />
-
修改功能check_me的定义::
function check_me(ev) {
-
现在,您可以访问事件::
ev.preventDefault();
-
的方法和参数。然后,你必须通过参数上的onclick在内嵌调用::
<button type="button" onclick="check_me(event);">Click Me!</button>
A useful link了解这一点。
完整的示例:
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
function check_me(ev) {
ev.preventDefault();
alert("Hello World!")
}
</script>
</head>
<body>
<button type="button" onclick="check_me(event);">Click Me!</button>
</body>
</html>
谢谢你toto_tico ..它肯定帮我节省了几个小时.. – 2016-05-16 14:49:41
我会改变你的绑定是:
<button type="button" value="click me" onclick="check_me" />
然后,我会改变你的check_me()
函数声明为:
function check_me() {
//event.preventDefault();
var hello = document.myForm.username.value;
var err = '';
if(hello == '' || hello == null) {
err = 'User name required';
}
if(err != '') {
alert(err);
$('username').focus();
event.preventDefault();
} else {
return true; }
}
你不能只是假设“事件”被定义。你的代码给了我这个运行时错误:“ReferenceError:event is not defined”。示例代码:function awesome(){console.info(event); } awesome(); – HoldOffHunger 2017-11-03 15:21:11
不完全是我正在寻找..但我会将其标记为已回答。谢谢。 – TigerTiger 2009-08-24 11:26:37
这对我有效。谢谢! – apebeast 2016-01-21 23:20:18