我用js来验证表单元素,代码如下
<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="net.fckeditor.*"%>
<%@ taglib uri="http://java.fckeditor.net" prefix="FCK"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>FCKEditor Demo</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function onSub(){

if(document.form1.EditorDefault.value == ""){
alert(123);
document.form1.ClassID.focus();
return false;
} else {
return true;
}
}
</script>
</head> <body>
<center>
<h3>
Welcome to FCKEditor world!
</h3>
</center>
<br>
<%
FCKeditor fckEditor = new FCKeditor(request, "EditorDefault"); fckEditor.setToolbarSet("MyEditor");
// fckEditor.setValue("你好,世界!");
fckEditor.setHeight("500");
fckEditor.setWidth("800");
%> <form id="form1" name="form1" method="post" action="2.html"
onsubmit="return onSub();">
<center>
<%
out.println(fckEditor);
%>
</center>
<input type="submit" name="Submit" value="提交" />
</form>
</body>
</html>可是为什么当onSub()返回false时,表单也提交呢?

解决方案 »

  1.   

    alert(123);
    这个弹出来了吗?
      

  2.   


      function onSub(){
                
                if(document.form1.EditorDefault.value == ""){
                    alert(123);
                    document.form1.ClassID.focus();
                    return false;
                } else {
                    return true;
                }
            return true;
    }换成这个试试
      

  3.   

    这个return true加的没意义不是走if就是走else分支,最后的return true 怎么也执行不到函数写的应该没问题,应该先看看是否进入了if分支
      

  4.   

    我觉得你的事件可能写错了,onSubmit的含义是在表单提交之前调用某个处理,调用完这个之后还是要提交表单。
    你把sub()函数写进那个button的click事件中试试。
    抑或在form.onSubmit中直接写"sub()",在sub()函数中手动提交form.