我知道标题听起来有点奇怪,但我的问题是。 我正在使用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;
}
非常感谢提前
答案 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>