1

当用户点击按钮时,一切正常。但是当他们按下回车键时,页面就会重新加载。我究竟做错了什么?

这是我的完整代码:

<!doctype html>
<html>
<head>
    <title>Fun!</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>

    <link rel="stylesheet" href="" media="print" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>

    <style type="text/css">
        body {
            font-family: arial;
        }
    </style>

    <script type="text/javascript">
        function get() {
            $.post('data.php', { name: form.name.value }, 
                function(output) {
                    $('#age').html(output).show();
                }
            );
        }
    </script>
</head>

<body>
    <div class="container">
        <form action="" name="form" method="post">
            <input type="text" name="name" /> <input type="button" value="Get" onClick="get();" />
        </form><br />

        <div id="age" style="display: none;">Result</div>
    </div>
</body>
</html>

谢谢。

4

2 回答 2

3

您正在onclick为按钮设置事件,当按下 Enter 时这将不起作用,因为它不是点击。

起飞onclick并添加

onsubmit="event.preventDefault();get();return false;"

<form>.

event.preventDefault(); prevents 提交表单(Default动作)。

return false;适用于旧版本的 Internet Explorer,因为它们不支持e.preventDefault();. 现代浏览器忽略return false;.

于 2012-07-09T00:44:39.743 回答
0

当用户按下回车键时,表单将被提交。您必须寻找onsubmit表单的事件,而不是使用onclick按钮的事件。

<form ... onsubmit="get();">
    ...
</form>

现在您还必须防止页面实际提交(因为您使用 AJAX 完成了它)。return false;在函数末尾添加get()

更好的做法是使用 jQuery 分配事件(因为无论如何您都在使用它),使用on()方法。

于 2012-07-09T00:46:42.893 回答