Tig*_*ger 58 javascript dom-events
<button type="button" value="click me" onclick="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();
return false;
} else {
return true; }
}
Run Code Online (Sandbox Code Playgroud)
在Firefox中,当我尝试提交一个空值时,它会抛出错误并将焦点设置回元素.但同样的事情在IE中不会发生,因为它会引发错误并在单击"确定"后发布表单(返回true).
我怎么能避免这个?我正在考虑使用event.preventDefault()避免这种情况,但我不知道如何使用此方法执行此操作.我尝试通过checkme(事件)..但它没有工作.我正在使用Prototype js.
(我知道如何当我绑定在JavaScript中.点击函数传递事件..而不是使用jQuery调用的onclick中的HTML ..,但我有调试这段代码)
tot*_*ico 175
修改函数check_me的定义为::
function check_me(ev) {
Run Code Online (Sandbox Code Playgroud)现在您可以访问事件的方法和参数,在您的情况下:
ev.preventDefault();
Run Code Online (Sandbox Code Playgroud)然后,您必须在内联调用的onclick上传递参数::
<button type="button" onclick="check_me(event);">Click Me!</button>
Run Code Online (Sandbox Code Playgroud)一个有用的链接来了解这一点.
完整示例:
<!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>
Run Code Online (Sandbox Code Playgroud)
Pau*_*xon 19
尝试使onclick js使用'return'来确保使用所需的返回值...
<button type="button" value="click me" onclick="return check_me();" />
Run Code Online (Sandbox Code Playgroud)