jsp页面的喜欢在button的定义onclick="return submitForm(this,'2','sp');submitForm中进行一些数据输入的处理和判断,最后调用fm.submit();fm是再jsp页面中定义的表单form
<form aciton="../*.do?.." name="fm" .... onsubmit='return validate(this,sql)'>...
</form>  
 问题如下:
1、onclick=”return submitForm()"  事件发生后调用方法我知道,这里的return是什么意思,return的返回保存在哪个变量里?这个求详细回答。
2、submitForm()的fm.submit后不久开始执行form表单的提交动作吗,就是*.do?..。那后面还有个onsubmit=‘validateForm()’不是不会执行了?就算执行和fm的提交动作也没有关系,这样些有什么用呢。
3、jsp页面中页面包含关系比较复杂时,想要查找js函数的位置很困难,网上找到一个方法alert(functionName);可以打印出函数内的信息,可是如果函数的形参多与2个以上就会报错,这是为什么啊?
望高手大大指点迷津。

解决方案 »

  1.   

    <script>
     function checkit(){
           if (form1.aaa.value==""){
              alert("请输入aaa的内容")
              return false;
         }
    }
    </script>
    <form name="form1" method="post" action="act.jsp" onsubmit="return checkit()">
    <input name="aaa" type="text" id="aaa">
    </form>
    ---------------------
    checkit()方法返回false则不提交,否则提交form进入jsp
      

  2.   

    1.个人猜测 从自定义标签可以知道 标签就是一个tag类 
      比方html定义了一个form类下面有个返回类型为boolean 的onsubmit方法
    form的主方法里面有个判断if(onsubmit(xxx)){执行}
    2.validateForm()是表单验证在执行action前执行
    3.不知道你说啥 ctrl+F很方便的可以找到你需要的JS函数
      

  3.   

    多谢各位,1,2问题我理解了,第三个问题我再说具体点:
    比如
    function massage(msg){
    var ms=msg;
    document.write(msg);
    }

    <form>
    <input type="button" onclick="alert(massage)">
    </form>
    那么打印的内容就会是:
    function massage(msg){
    var ms=msg;
    document.write(msg);
    }
    可是如果函数定义的时候写成这样:
    function massage(msg,mag){....}(形参多与1个以上)
    就会报错,求解,
    还有onclick="return submitForm(this,'2','sp');这个this是什么意思啊?
      

  4.   

    3楼说的时ctrl+h吧。ctrl+f在同一个页面还能找到,如果在包含页就找不到了,而ctrl+h找的结果是在太多,还不如自己一个个到子页面找。所以才想把函数的内容直接打出来,复制出来看。
      

  5.   

    this就是form
    form.action="";
    form.submit();
    手动提交
      

  6.   

    jsp页面的喜欢在button的定义onclick="return submitForm(this,'2','sp');submitForm中进行一些数据输入的处理和判断,最后调用fm.submit();fm是再jsp页面中定义的表单form
    <form aciton="../*.do?.." name="fm" .... onsubmit='return validate(this,sql)'>...
    </form>   
     问题如下:
    1、onclick=”return submitForm()" 事件发生后调用方法我知道,这里的return是什么意思,return的返回保存在哪个变量里?这个求详细回答。
    submitForm()会有一个返回值,如果为ture or false 为ture刚提交表单否则不提交。2、submitForm()的fm.submit后不久开始执行form表单的提交动作吗,就是*.do?..。那后面还有个onsubmit=‘validateForm()’不是不会执行了?就算执行和fm的提交动作也没有关系,这样些有什么用呢。
    这个问题描述不是很清楚?3、jsp页面中页面包含关系比较复杂时,想要查找js函数的位置很困难,网上找到一个方法alert(functionName);可以打印出函数内的信息,可是如果函数的形参多与2个以上就会报错,这是为什么啊?
    [b]页面输出都是字符串,把两个形参用字符连接的方式输出如变量a+变量b还可以加字符串+“”。[/b
      

  7.   

    <form name="fm" aciton="*/*.do*" onsubmit="return validate(this)">
    <input type="button" value="提交" onclick="return saveForm(this)/>
    </form>saveForm(){
    ....
    fm.submit;
    }
    这个页面的流程是不是如下:点击提交,
    saveForm执行到fm.submit;产生onsubmit事件,调用validate(),如果返回是true,就执行
    submit();
    submit触发的事件validate在submit之前执行,返回true时才执行submit;不知道我的理解对不对
    就是一个触发事件产生时,先执行触发处理,然后在触发事件,这样就能说通了,可是老感觉不对啊。
    难道我打你,你哭了,在我打你之前你哭了,因为你哭了所以我打你。这么别扭的逻辑??
      

  8.   

    无语了 有了form.submit() 就不需要return了  也不需要onsubmit()了
    直接在提交按钮上写个onclick()事件就行了
    那个submit()只是form的一个方法 看情况使用
      

  9.   

    晕死,这是我现在工作要看到代码,saveForm里有参数的包装,validate里是代码的验证,你这回答我无语啊,我现在的任务是看懂,你这样我更不懂了
      

  10.   

    this代表当前对象可是如果函数定义的时候写成这样:
    function massage(msg,mag){....}(形参多与1个以上)
    就会报错,求解,楼主传2个参数进去了吗,楼主代码也有问题
    function massage(msg){
    var ms=msg;
    document.write(msg);
    }
    ms 都没有 定义个值接受干什么