eclipse javascript奇怪的行为

时间:2014-11-13 20:53:20

标签: javascript jsp

我知道标题听起来有点奇怪,但我的问题是。 我正在使用eclipse / jsp开发一个动态Web项目。我只是试图通过调用javascript函数来弹出一个窗口,并使用“return false”防止重定向。我将使用带有ajax的servlet,因此我需要使用return false来停止执行。 问题是javascript方法有时会起作用,有时根本不调用该方法。有时弹出窗口出现但返回false不起作用,页面被定向到“test.jsp?filePath =” 我将javascript保存在名为basic.js的单独文件中。

JSP:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="javascript/basic.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form id="showFilePath">
         <input name="filePath" type="text">
         <input type="submit" onclick="shouldWork()">
    </form>
    <p id="output">
</body>
</html>

和javascript方法很简单:

function shouldWork() {
    alert("hello!");
    return false;
}

非常感谢提前

2 个答案:

答案 0 :(得分:1)

更改

<input type="submit" onclick="shouldWork()">

<input type="submit" onclick="return shouldWork()">

答案 1 :(得分:0)

由于您使用的是input type = submit,因此可以使用“return false;” onSubmit事件形式 -

<form id="showFilePath" onSubmit="return false;">
             <input name="filePath" type="text">
             <input type="submit" onclick="shouldWork()">
        </form>

我建议你使用JQuery for ajax。然后使用可以使用preventDefault()方法来停止表单的默认行为并调用自己的方法 -

<html>
<head>
<script>
        $(document).on("click", ".#mySubmit", function(e) {
            e.preventDefault();
            $.ajax({
                      url: formURL,
                      cache:'false',
                      type: "POST",
                      success:function(data, textStatus, jqXHR) {   
                        console.log("success");
                     }
                });
        });
</script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <form id="showFilePath">
         <input name="filePath" type="text">
         <input id="mySubmit" type="submit">
    </form>
    <p id="output">
</body>
</html>