白日梦想jun 2016-10-16 12:40 采纳率: 100%
浏览 1892
已采纳

form中 type=button 与 type=submit的表单提交的疑问

1.用button提交为什么提交不了,我调用了submit()方法,但是为什么没有进入action里面的页面
2.直接在表单上加 onsubmit="return check();",用jq写的时候这个check()函数应该写在哪
3.关于上面疑问的细节我用注释说明了,搞了大半天还是没有弄清楚,麻烦大神指导指导。不胜感激。
4.check()函数放在$(function(){})外面的时候,当本来该执行里面的return false时,为什么还是提交并进入action里面的页面了呢?

<form id="register" name="register" method="get" action="https://www.baidu.com">
            <input type="text" name="userName" placeholder="用户名" autocomplete="off"/>
            <input type="submit" name="submit" value="注册"/>
            <input type="button" name="show" value="点击"/> 
    </form>
 <script type="text/javascript">
                $(function(){
                    var name = '';
                    $("input[name='userName']").blur(function(){
                        if($(this).val()){
                            name = $(this).val();
                        }
                    });

                    //第一种:button模拟提交 这种为什么提交不了
                    /*$("input[name='show']").click(function(){
                        if(name){
                            $("form#register").submit();
                        }else{
                        alert("无法提交");
                        }
                    })*/

                    //第二种: 表单加上onsubmit="return check();"验证
                    //这个函数写在里面,访问上面的变量,但是直接外部onclick绑定没有进函数
                    function check(){
                        alert("ok"); //直接未进入函数
                        if($("input[name='userName']").val()!=null){
                            //alert("ok"); 
                            return true;
                        }else{
                            //alert("false");
                            return false;
                        }
                    }
                })

                        //这个函数写在外面,外部onclick绑定可以进入该函数,但是无法访问上面已有过控制的变量
            /*function check(){
                //alert("ok"); //进入函数
                if($("input[name='userName']").val()!=null){
                    //alert("ok"); //有输入时,进入
                    return true;
                }else{
                    //alert("false"); //无输入,为什么没有进入
                    return false;
                }
            }*/
  • 写回答

6条回答 默认 最新

  • effiu 2016-10-16 15:00
    关注

    额,排版乱了,这是代码:

     $(function() {
                var name = '';
                $("input[name='userName']").blur(function() {
                    if ($(this).val()) {
                        name = $(this).val();
                    }
                });
    
                //第一种:button模拟提交 这种为什么提交不了
                $("input[name='show']").click(function(){
                    if($("input[name='userName']").val()){
                        $("form#register").submit();
                    }else{
                        alert("无法提交");
                    }
                });
            });
    
            //这个函数写在外面,外部onclick绑定可以进入该函数,但是无法访问上面已有过控制的变量
            function check(){
                //alert("ok"); //进入函数
                if($("input[name='userName']").val()!=null){
                    //alert("ok"); //有输入时,进入
                    return true;
                }else{
                    //alert("false"); //无输入,为什么没有进入
                    return false;
                }
            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊