2013-04-01 40 views
0

我试图触发jQuery中的submithandler,但它在提交时会进入action页面。我究竟做错了什么?使用jQuery触发submithandler

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
</head> 
<body> 
<script> 
$('#target').submit(function() { 
    alert('Handler for .submit() called.'); 
    return false; 
}); 
</script> 
<form id="target" action="destination.html"> 
    <input type="text" value="Hello there" /> 
    <input type="submit" value="Go" /> 
</form> 
<div id="other"> 
    Trigger the handler 
</div> 
</body> 
</html> 

回答

1

尝试:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <script src="http://code.jquery.com/jquery-latest.min.js"></script> 
</head> 
<body> 
<script> 
$(function() { 
    $('#target').submit(function() { 
     alert('Handler for .submit() called.'); 
     return false; 
    }); 
}); 
</script> 
<form id="target" action="destination.html"> 
    <input type="text" value="Hello there" /> 
    <input type="submit" value="Go" /> 
</form> 
<div id="other"> 
    Trigger the handler 
</div> 
</body> 
</html> 
0

两个变化......一个,包你的代码在onready;第二,增加一个preventDefault

$(function() { 
    $('#target').submit(function(event) { 
     event.preventDefault(); 
     alert('Handler for .submit() called.'); 
     return false; 
    }); 
}); 

更多信息:http://api.jquery.com/event.preventDefault/

+0

我相信'return false;'和'event.preventDefault();'做同样的事情。我更喜欢在'return false;'上使用'event.preventDefault()'。 – spullen

+0

啊,对,你是 - 我正在考虑正常(非jQuery)事件处理程序。 – Adrian