使用onsubmit使用Javascript验证表单不起作用

时间:2011-08-17 18:54:25

标签: javascript html

我试图为我的问题找到任何有用的帖子,但没有找到我的问题: 我想在将表单提交到数据库之前验证表单。这是我的代码:

<%@ page language="java" contentType="text/html; charset=windows-1255"
pageEncoding="windows-1255"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1255">
<title>Registration</title>
<link rel="shortcut icon" href="img/icon0.png" />
<link rel="stylesheet" type="text/css" href="../css/index.css" />
<script type="text/javascript">
function validate_form()
{
var isValid = true;
var username = document.getElementById("username").value;
if (username==null||username==""){
    alert("WRong input");
    isValid = false;
}
if(isValid == true)
{
    return true;
}
return false;
}
</script>
</head>
<body>
<form action = "regServlet" method = "POST" onsubmit="return validate_form()">
<table id="regTable">
  <tr>
    <td class="firstRow">Username:</td>
    <td><input type="text" name="username" value="" size="15"/></td>
  </tr>
</table>
<input style="margin:auto;" type="image" name="loginB" src="../img/login_button.png" />
</form>
</body>
</html>

它是在tomcat 6中运行的jsp文件。 当我运行页面时,我的javascript函数根本不起作用。我在功能的开头用警报检查了它。 我的问题是什么?我忘记了什么? Eclipse在表单行上写入错误(显示onsubmit): 不能从外面返回一个函数或方法。

感谢

3 个答案:

答案 0 :(得分:1)

您需要为name="username"提供id="username"

DEMO:http://jsfiddle.net/maniator/tf5zA/

你的js可能更清洁:

function validate_form() {
    var isValid = true;
    var username = document.getElementById("username").value;
    if (username == null || username == "") {
        alert("WRong input");
        isValid = false;
    }
    return isValid;
}

答案 1 :(得分:1)

您需要id=username,因为您有

document.getElementById("username")

答案 2 :(得分:1)

我还遇到了“无法从外部返回功能或方法”。并在https://bugs.eclipse.org/bugs/show_bug.cgi?id=353209

的Eclipse WTP中找到了归档验证错误