通常,我们在程序设计时,一般都会用到提交表单动作,而最好是让用户使用时,就在客户端进行判断,查看用户提交的数据是否合理,说到这里,我们通常会想到,在javascript里面编写判断语句,没错,这是一个很好的方法,通常我们可以通过document.getElementById取得表单里对象的值,还有一种方法就是通过document.form取值,但如果一个form表单没有表单名,我们通过document.form怎么取值?
让我们先来看看这个jsp中的代码:
<%@ page language="java" pageEncoding="GB2312"%>
<%@ taglib http://struts.apache.org/tags-bean"; target=_blank>http://struts.apache.org/tags-bean " prefix="bean"%>
<%@ taglib http://struts.apache.org/tags-html"; target=_blank>http://struts.apache.org/tags-html " prefix="html"%>
<html>
<head>
<title>JSP for AddForm form</title>
</head>
<body>
<html:form action="/add">
num1 : <html:text property="num1" /><html:errors property="num1"/><br/>
num2 : <html:text property="num2" /><html:errors property="num2"/><br/>
<html:submit value=" 加 " οnclick=" return check('add')" />
<html:submit value=" 减 " οnclick="return check('subtract')" />
<html:submit value=" 乘 " οnclick="return check('multiply')" />
<html:submit value=" 除 " οnclick="return check1('divide')" />
</html:form>
</body>
</html>
通过上面的代码,我们不难看出,里面的form没有表单名,怎么办?这时候,我们应该想到,假设一个页面有多个form的话,通过form的
序号也可以找到相对应的form,form ,这里的i是第几个表单,假设我们要找第5个表单,那么就可以写成form[4]。
在javascript中的代码就可以写成:
<script type="text/javascript" language="javascript">
function check(operate)
{
var num1 = document.getElementById("num1");//通过对象名直接取值
var num2 = document.forms[0].num2;//通过form找到对应的对象并取值
if(num1.value==""||num1.value==null)
{
alert("请输入第一个操作数");
num1.focus();
return false;
}
if(num2.value==""||num2.value==null)
{
alert("请输入第二个操作数");
num2.focus();
return false;
}
for(var i=0;i<num1.value.length;i++)
{
var n1 = num1.value;
var s1 = n1.substring(i,i+1);
var n2 = num2.value;
var s2 = n2.substring(i,i+1);
if(!(s1>=0&&s1<10))
{
alert("第一个操作数不合法,请重新输入!");
num1.value="";
num1.focus();
return false;
}
if(!(s2>=0&&s2<10))
{
alert("第二个操作数不合法,请重新输入!");
num2.value="";
num2.focus();
return false;
}
else
{
document.forms[0].action = operate+'.do';
document.forms[0].submit();
return true;
}
}
}
</script>
让我们先来看看这个jsp中的代码:
<%@ page language="java" pageEncoding="GB2312"%>
<%@ taglib http://struts.apache.org/tags-bean"; target=_blank>http://struts.apache.org/tags-bean
<%@ taglib http://struts.apache.org/tags-html"; target=_blank>http://struts.apache.org/tags-html
<html>
<head>
<title>JSP for AddForm form</title>
</head>
<body>
<html:form action="/add">
num1 : <html:text property="num1" /><html:errors property="num1"/><br/>
num2 : <html:text property="num2" /><html:errors property="num2"/><br/>
<html:submit value=" 加 " οnclick=" return check('add')" />
<html:submit value=" 减 " οnclick="return check('subtract')" />
<html:submit value=" 乘 " οnclick="return check('multiply')" />
<html:submit value=" 除 " οnclick="return check1('divide')" />
</html:form>
</body>
</html>
通过上面的代码,我们不难看出,里面的form没有表单名,怎么办?这时候,我们应该想到,假设一个页面有多个form的话,通过form的
序号也可以找到相对应的form,form
在javascript中的代码就可以写成:
<script type="text/javascript" language="javascript">
function check(operate)
{
var num1 = document.getElementById("num1");//通过对象名直接取值
var num2 = document.forms[0].num2;//通过form找到对应的对象并取值
if(num1.value==""||num1.value==null)
{
alert("请输入第一个操作数");
num1.focus();
return false;
}
if(num2.value==""||num2.value==null)
{
alert("请输入第二个操作数");
num2.focus();
return false;
}
for(var i=0;i<num1.value.length;i++)
{
var n1 = num1.value;
var s1 = n1.substring(i,i+1);
var n2 = num2.value;
var s2 = n2.substring(i,i+1);
if(!(s1>=0&&s1<10))
{
alert("第一个操作数不合法,请重新输入!");
num1.value="";
num1.focus();
return false;
}
if(!(s2>=0&&s2<10))
{
alert("第二个操作数不合法,请重新输入!");
num2.value="";
num2.focus();
return false;
}
else
{
document.forms[0].action = operate+'.do';
document.forms[0].submit();
return true;
}
}
}
</script>