1

您好,我遇到了一个关于表单提交的 onclick 属性的奇怪行为。

服务器页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head lang="en-us" >
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>Return Form Example</title>
    <script type="text/javascript">
        function doSomething(){
            alert("hey");
            return false;
        }
    </script>
</head>

<body>
    <form action="submit.php" method="post">
        <input type="submit" onclick="return doSomething()" value="click me!">
    </form>
</body>
</html>

在此示例中,在我的服务器上运行,当我单击提交按钮时,我收到一条警报,说嘿,我停留在当前页面上。但是,我尝试在 jsfiddle 上设置相同的示例,但出现 404 错误,表示表单已提交。我无法弄清楚为什么会发生这种情况。

这是我试图在我的服务器上复制行为的 jsfiddle。

jsfiddle:http: //jsfiddle.net/46XSv/

4

2 回答 2

2

您要检查选项“ no wrap - in <head>”,即“不要包装 Javascript 代码,将其放在部分中”。

no wrap - in <head>在“框架和扩展”下选择“ ”

在此页面中,您将在底部找到每个选项的说明:http: //doc.jsfiddle.net/basic/introduction.html

在 return 语句的末尾包含分号也是一个好习惯,如下所示:

<input type="submit" onclick="return doSomething();" value="click me!">
于 2013-07-21T20:47:18.477 回答
1

您应该onsubmit<form>元素上使用而不是onclick<input>元素上使用。它将正常工作。

于 2013-07-21T20:40:37.720 回答