需要放在form内的type=submit 的input中才有效 比如:<form><input type="submit" onsubmit="ooxx()" /></form>
Form 对象的 onsubmit 属性指定了一个事件句柄函数。当用户单击了表单中的 Submit 按钮而提交一个表单时,就会调用这个事件句柄函数。注意,当调用方法Form.submit() 时,该处理器函数不会被调用。如果 onsubmit 句柄返回 fasle,表单的元素就不会提交。如果该函数返回其他值或什么都没有返回,则表单会被提交。
例子:
<html>
<head>
<title>Using the onSubmit event handler for the Form object</title>
</head>
<body>
<script language="JavaScript">
function check(){
var result
var num=document.getElementById("num").value
if(num==1){
alert(num)
result=true
}
if(num==0){
result=false
}
return result
}
</script>
<form name="form1" onSubmit = "return check()">
<b>Enter Num:</b>
<br>
<input type="text" id="num" />
<br><br>
<input type ="submit" Value="Submit" >
</form>
</body>
</html>
LZ有4个错误哦1.原代码:str1.length()==0
这里在获取字符串长度时,用的length是属性不是方法,改为
str1.length == 0
2.FORM的onsubmit事件,全小写
3.在设置onsubmit事件时,直接赋了串字符串是不对的
应该是test.onsubmit=function(){return checkForm1()}
如果事件只是调用一个0参数的方法,也可以这样test.onsubmit=checkForm1
4.LZ的input本来是submit类型,不需要再去调用test.onsubmit()和test.submit()
//====修改后======
<%@ page language="java" contentType="text/htmlcharset=UTF-8"%>
<html>
<head>
<title>Insert title here</title>
<script language=javascript>
function checkForm1()
{
var str1 = document.test.str1.value
if(str1.length==0)
{
alert("请输入一个整数!")
return false
}
return true
}
function checkForm2()
{
var str1 = document.test.str1.value
var int1 = parseInt(str1)
if(int1<10)
{
alert("请输入一个大于10的整数!")
return false
}
return true
}
</script>
</head>
<body>
<form name="test" method="post">
<input type="text" name="str1"></input><br>
<input type="submit" value="预览" onClick= "test.action = 'test.jsp'test.onsubmit=function(){return checkForm1()}"><br>
<input type="submit" value="提交" onClick= "test.action = 'test.jsp'test.onsubmit=function(){return checkForm2()}"><br>
</form>
<br>
<br>
<input type="text" name="str2" value="<%=request.getParameter("str1")%>"></input><br>
</body>
</html>