JSP Form 在 Eclipse 中没有达到 JavaScript

jsp form is not reaching javascript in eclipse

本文关键字:JavaScript Form Eclipse JSP      更新时间:2023-09-26

我正在使用Javascript在jsp中尝试表单验证。我的代码如下所示。我的 jsp 页面没有到达 .js 文件以进行 eclipse 中的验证。

function validateForm(){
	alert("entered js");
	
	var name = document.getElementsByName("name");
	var age = document.getElementsByName("age");
	var id = document.getElementsByName("id");
	
	//not null validation
	
	if(name == null || name == ""  ){
		alert("Please give your name");
	}
	
	if(age == null || age == ""){
		alert("Please give your age");
	}
	
	if(id == null || id == ""){
		alert("Pls give an id");
		
	}
	
	//age validation .. only numbers
	
	if(/'D/.test(age)){
		alert("Only numbers in age pls");
	}
	
	//id validation .. only numbers
	if(/'D/.test(id)){
		alert("only numbers in ID pls ..");
	}
	
}
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<script type="text/javascript" src = "/js/studentScript.js"></script>
<title>Insert title here</title>
</head>
<body>
<form action="/HelloWeb/controller" method="post" onSubmit="return validateForm()">
	<table>
	
		<tr>
			<td><label>Name: </label></td>
			<td><input type="text" name="name"></td>
		</tr>
		
		<tr>
			<td><label>Age: </label></td>
			<td><input type="text" name="age"></td>
		</tr>
		
		<tr>
			<td><label>Id: </label></td>
			<td><input type="text" name="id"></td>
		</tr>
	
	</table>
	
	<input type="submit" name="submit" value="Submit" >
</form>
</body>
</html>

我的项目资源管理器看起来像这样

在此处输入图像描述

请提出解决方案

我尝试创建一个结构和文件与您的项目相同的项目为了使页面正常工作,我可以建议尝试以下方法之一:

1-删除开头的斜杠

<script type="text/javascript" src = "js/studentScript.js"></script>    

2-添加上下文名称

 <script type="text/javascript" src = "<%=request.getContextPath()%>/js/studentScript.js"></script> 

两者都为我工作,没有问题。

我现在知道问题了..问题是我试图在我的项目中应用 Spring mvc,它不允许使用 JScript 进行客户端验证(不是以通常的方式......我仍在尝试研究这个主题)。因此,以下问题。

对不起,如果我给你们带来了麻烦。

  • 为什么 js 没有响应?

    通往.js的路径不正确。尝试使用绝对网址,例如http[s]://host[:port]/HelloWeb/js/studentScript.js

  • js的编写方式存在错误(不是语法错误)。

    document.getElementsByName()给你NodeList,而不是一个 html 元素。要从文本框中获取实际值,请使用value属性,例如 document.getElementsByName('name')[0].value,其余的依此类推。