我正在实现一个简单的代码,以确定验证在我的浏览器中无效的原因。
但验证无效。 Idk y。
它只是重定向到下一页
newjsp.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
<script>
function validation()
{
var a=document.form1.txt1.value;
if(a=="")
{
alert("Hey");
return false;
}
return true;
}
</script>
</head>
<body>
<form id="form1" onsubmit="return validation(this)" action="newjsp1.jsp">
<input type="text" id="txt1">
<input type="submit" id="sub">
</form>
</body>
答案 0 :(得分:0)
不要将this
用作函数参数。 this
是关键字。使用任何其他变量。像这样的东西
function validation(form) {
var a=form.txt1.value;
if(a==="") {
window.alert("Hey");
return false;
}
return true;
}
当表格是这样的时候
<form name="form1" onsubmit="return validation(this)" action="newjsp1.jsp">
....
</form>
尝试document.forms.form1.txt1.value;
function validation(){
var a=document.forms.form1.txt1.value;
if(a==""){
alert("Hey");
return false;
}
return true;
}
答案 1 :(得分:0)
使用相反的逻辑 - 必须正常,然后在所有其他情况下变为TRUE,返回FALSE。
function validation()
{
var a = document.getElementById('txt1').value;
if (typeof a != "undefined" && a != "")
{
// `a` is in very good condition :)
return true;
}
alert('hey');
return false;
}
我认为,您的document.form1.txt1.value
未正确填充,因此您的值a
可能未定义,而不是&#34;&#34;,因此它将返回TRUE。
尝试使用console.log(a);
最后,使用var a = document.getElementById('txt1').value;
,以防万一:)
答案 2 :(得分:0)
而不是表单ID使用名称
<script>
function validation()
{
var a=document.form1.txt1.value;
console.log(a);
if(a=='')
{
alert("Hey");
return false;
}
return true;
}
</script>
</head>
<body>
<form name="form1" onsubmit="return validation(this)" action="newjsp1.jsp">
<input type="text" id="txt1">
<input type="submit" id="sub">
</form>
</body>