PHP表单提交做判断的问题???

写了一个学生档案的添加页面(admin_student_add.php),我所遇到的问题是:按添加的按钮后,不进行判断表单,直接添加了,这造成了添加的都没有符合我设置的情况。
我的设置是:有些input是不能为空的,而且这些input的长度也有限制

我的判断代码如下:
<!--
function check(form){
if(form.xjh.value==""){
alert("学籍号不能为空,请输入!");
form.xjh.focus();
return false;
}else if(form.xjh.value.length != 9){
alert("学籍号为9位,请重新输入!");
form.xjh.focus();
return false;
}
if(form.xh.value==""){
alert("学号不能为空,请输入!");
form.xh.focus();
return false;
}else if(form.xh.value.length != 12){
alert("学号为12位,请重新输入!");
form.xh.focus();
return false;
}
if(form.xm.value==""){
alert("姓名不能为空,请输入!");
form.xm.focus();
return false;
}else if(form.xm.value.length > 20){
alert("姓名最长为20位,请重新输入!");
form.xm.focus();
return false;
}
if(form.rxrq.value==""){
alert("入学日期不能为空,请选择!");
form.rxrq.focus();
return false;
}
if(form.byrq.value==""){
alert("毕业日期不能为空,请选择!");
form.byrq.focus();
return false;
}
if(form.sfzh.value==""){
alert("身份证号不能为空,请输入!");
form.sfzh.focus();
return false;
}else if(form.sfzh.value.length != 18){
alert("身份证号为18位,请重新输入!");
form.sfzh.focus();
return false;
}
if(form.ksh.value==""){
alert("考生号不能为空,请输入!");
form.ksh.focus();
return false;
}else if(form.ksh.value.length != 9){
alert("考生号为9位,请重新输入!");
form.ksh.focus();
return false;
}
if(form.lxdz.value.length > 9){
alert("联系地址最长为50位,请重新输入!");
form.lxdz.focus();
return false;
}
if(form.yzbm.value.length != 6 && form.yzbm.value != ){
alert("邮政编码为6位,请重新输入!");
form.yzbm.focus();
return false;
}if(form.lxdh.value.length !> 9){
alert("联系电话最长为30位,请重新输入!");
form.lxdh.focus();
return false;
}
form.submit();
}
-->
</script>

表单:
<form name="form1" method="post">

按钮:
<TD colspan="3" align="center"><input type="submit" name="into_student" onclick="check(form1)" style="height: 25px; padding: 2px 0 0 0;" value="增 加">      <input type="reset" name="" style="height: 25px; padding: 2px 0 0 0;" value="取 消"></TD>

请问到底是哪里出问题了?
请详细说明!
我已经将JavaScript里的function有问题的地方都改过来了
按第一个的办法修改了form和按钮
但任然行不通
第二个的代码好难懂

还有请问如果我想加一个条件:添加时要判断一下xjh有没有重复的,要怎么加呢?

64行有误,语法错误:

if(form.yzbm.value.length != 6 && form.yzbm.value != ){

另外给你一个我自己做项目经常用的验证方法:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My Check Form</title>
</head>
<script type="text/javascript">
//主函数
function CheckForm(oForm) {
var err_ele = null;
var ele = oForm.elements;
var haserror = false;
//遍历所有表元素
for(var i=0;i<ele.length;i++) {
//过滤元素类型
if(ele.type != 'submit' && ele.type != 'hidden' && ele.type != 'button') {
//是否需要验证标签
var required = ele[i].getAttribute('required');
if(required!="undefined" && (required==""||required=="true"||required=="yes") ) {
if(!validate(ele[i])) {
if(err_ele==null)
err_ele = ele[i];
haserror = true;
break;
}
}
}
}
//判断是否有没有通过验证的项目
if(haserror) {
err_ele.focus();
return false;
} else {
return true;
}
}

//得到表单元素的值
function getvalue(ele) {
var type = ele.getAttribute('type');
switch(type) {
case 'text':
case 'hidden':
case 'password':
case 'file':
case "select-one":
case 'textarea':
return ele.value;
}
}

//检测函数
function validate(ele) {
//得到设定的检测函数
var fun = ele.getAttribute('fun');
//自定义提示语句
var custommsg = ele.getAttribute('msg');

if(fun!=null) {
var checkarr = executeFunc(fun,ele);
if(checkarr[2] == 'regxp') { //正则表达式处理
if(!regValidate(getvalue(ele),checkarr[0])) {
//如果有自定义提示语句则使用自定义提示语句
if(custommsg) {
alert(custommsg);
} else {
alert(checkarr[1]);
}
return false;
}
} else if(checkarr[2] == 'custom') { //函数自行逻辑处理
//如果验证通过
if(!checkarr[0]) {
//如果有自定义提示语句则使用自定义提示语句
if(custommsg) {
alert(custommsg);
} else {
alert(checkarr[1]);
}
return false;
}
}
}
return true;
}

//运行函数
function executeFunc(name,element) {
//匹配函数是否带有参数
if(name.match(/^[\w]+\([\w,\'\"]+\);?$/)) {
return eval(name.replace(/^([\w]+)\(([\w,\'\"]+)\);?$/,'$1($2,element)'));
} else {
return eval(name.match(/^[\w]+\(\)$/) ? name : name + '(element)');
}
}

//
//判定某个值与表达式是否相符
function regValidate(value,sReg) {
//字符串->正则表达式,不区分大小写
var reg = new RegExp(sReg ,"i");
if(reg.test(value)) {
return true;
} else {
return false;
}
}

//////////////////////////////////验证规则定义///////////////////////////////

// 正则类验证
function UserName() {
var rt = new Array();
rt[0] = '^([a-zA-Z0-9]|[._]){4,19}$';
rt[1] = "用户名必须为4-19个字母和数字组成";
rt[2] = 'regxp';
return rt;
}

function PassWord() {
var rt = new Array();
rt[0] = '^([a-zA-Z0-9]|[._]){6,19}$';
rt[1] = "密码必须为6-19个字母和数字组成";
rt[2] = 'regxp';
return rt;
}

function notBlank(){
var rt = new Array();
rt[0] = "^\\S+$";
rt[1] = "该项不能为空,且不能含有空格!";
rt[2] = 'regxp';
return rt;
}

function required(){
var rt = new Array();
rt[0] = "^\\S";
rt[1] = "该项不能为空!";
rt[2] = 'regxp';
return rt;
}

//判断email
function isEmail() {
var rt = new Array();
rt[0] = "\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
rt[1] = "该项填写的EMAIL格式不正确!";
rt[2] = 'regxp';
return rt;
}

//只能输入中文
function onlyZh() {
var rt = new Array();
rt[0] = "^[\u0391-\uFFE5]+$";
rt[1] = "该项只能输入中文!";
rt[2] = 'regxp';
return rt;
}

//只可输入英文
function onlyEn() {
var rt = new Array();
rt[0] = "^[A-Za-z]+$";
rt[1] = "该项只能输入英文!";
rt[2] = 'regxp';
return rt;
}

function enOrNum() {
var rt = new Array();
rt[0] = "^[A-Za-z0-9]+$";
rt[1] = "该项只能输入英文和数字,且不能有空格!";
rt[2] = 'regxp';
return rt;
}

function isPhone() {
var rt = new Array();
rt[0] = "^((\\(\\d{2,3}\\))|(\\d{3}\\-))?(\\(0\\d{2,3}\\)|0\\d{2,3}-)?[1-9]\\d{6,7}(\\-\\d{1,4})?$";
rt[1] = "应输入正确的电话号码格式!";
rt[2] = 'regxp';
return rt;
}

// 自定义类验证函数
function isIdCard(ele) {
var rt = new Array();
rt[0] = false;
rt[1] = "应输入正确身份证号!";
rt[2] = 'custom';

var Reg_15 = /^(\d{6})()?(\d{2})(\d{2})(\d{2})(\d{2})(\w)$/;
var Reg_18 = /^(\d{6})()?(\d{4})(\d{2})(\d{2})(\d{3})(\w)$/;
var num = ele.value;
var len = num.length;

if (len == 15) {
if (Reg_15.test(num))
rt[0] = true;
}
else if(len == 18) {
if (Reg_18.test(num))
rt[0] = true;
}
return rt;
}

function rePassword(ID,ele) {
var rt = new Array();
rt[0] = false;
rt[1] = "再次密码输入不一致!";
rt[2] = 'custom';

var password = document.getElementById(ID).value;
if(password != '' || ele.value != ''){
if(password == ele.value)
rt[0] = true;
}
return rt;
}
</script>

<body>
<form id="form1" name="form1" method="post" action="" onsubmit="return CheckForm(this);">
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="20%" align="right">用户名:</td>
<td><input type="text" name="username" id="username" required="true" fun="UserName" msg="自定义提示信息:用户名不正确,请重新输入!" /></td>
</tr>
<tr>
<td align="right">密码:</td>
<td><input type="password" name="password" id="password" required="true" fun="PassWord" /></td>
</tr>
<tr>
<td align="right">确认密码:</td>
<td><input type="password" name="repassword" id="repassword" required="true" fun="rePassword('password')" /></td>
</tr>
<tr>
<td align="right">电子邮件:</td>
<td><input type="text" name="email" id="email" required="true" fun="isEmail" /></td>
</tr>
<tr>
<td align="right">身份证号:</td>
<td><input type="text" name="idcard" id="idcard" required="true" fun="isIdCard" /></td>
</tr>
<tr>
<td align="right">全中文项:</td>
<td><input type="text" name="chinese" id="chinese" required="true" fun="onlyZh" /></td>
</tr>
<tr>
<td align="right">其它:</td>
<td><input type="text" name="notblank" id="notblank" required="true" fun="notblank" /></td>
</tr>
<tr>
<td align="right"> </td>
<td><input type="submit" name="button" id="button" value="提交" /></td>
</tr>
</table>
</form>

</body>
</html>
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-03
<!--
function check(){
var obj=document.form;
if(obj.xjh.value==""){
alert("学籍号不能为空,请输入!");
obj.xjh.focus();
return false;
}else if(obj.xjh.value.length != 9){
alert("学籍号为9位,请重新输入!");
obj.xjh.focus();
return false;
}
if(obj.xh.value==""){
alert("学号不能为空,请输入!");
obj.xh.focus();
return false;
}else if(obj.xh.value.length != 12){
alert("学号为12位,请重新输入!");
obj.xh.focus();
return false;
}
if(obj.xm.value==""){
alert("姓名不能为空,请输入!");
obj.xm.focus();
return false;
}else if(obj.xm.value.length > 20){
alert("姓名最长为20位,请重新输入!");
obj.xm.focus();
return false;
}
if(obj.rxrq.value==""){
alert("入学日期不能为空,请选择!");
obj.rxrq.focus();
return false;
}
if(obj.byrq.value==""){
alert("毕业日期不能为空,请选择!");
obj.byrq.focus();
return false;
}
if(obj.sfzh.value==""){
alert("身份证号不能为空,请输入!");
obj.sfzh.focus();
return false;
}else if(obj.sfzh.value.length != 18){
alert("身份证号为18位,请重新输入!");
obj.sfzh.focus();
return false;
}
if(obj.ksh.value==""){
alert("考生号不能为空,请输入!");
obj.ksh.focus();
return false;
}else if(obj.ksh.value.length != 9){
alert("考生号为9位,请重新输入!");
obj.ksh.focus();
return false;
}
if(obj.lxdz.value.length > 9){
alert("联系地址最长为50位,请重新输入!");
obj.lxdz.focus();
return false;
}
if(obj.yzbm.value.length != 6 && obj.yzbm.value != ){
alert("邮政编码为6位,请重新输入!");
obj.yzbm.focus();
return false;
}if(obj.lxdh.value.length !> 9){
alert("联系电话最长为30位,请重新输入!");
obj.lxdh.focus();
return false;
}
}
-->
</script>

表单:
<form name="form1" method="post" onsubmit="return check();">

按钮:
<TD colspan="3" align="center"><input type="submit" name="into_student" style="height: 25px; padding: 2px 0 0 0;" value="增 加"> <input type="reset" name="" style="height: 25px; padding: 2px 0 0 0;" value="取 消"></TD>