首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • js验证时会返回验证信息,但为什么仍会提交到下一页 [已结贴,结贴人:lishnqing]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 18:52:41 楼主
    是用来验证修改密码的,为什么当没有输入旧密码时,会返回提示,但仍会被提交到下一页,这是怎么回事
      <script language="javascript">
    function chk()

    var op=document.ps.oldp;
    var np=document.ps.newp;
    var np1=document.ps.newpp;
        if(op.value=="")
    {alert("你没有输入旧密码");
    document.ps.oldp.focus();
    document.ps.oldpp.select();
    return false;}
    else

    if(np.value.length <6 ¦ ¦np.value.length>20)
    {
    alert("密码长度在6~20之间");
    document.ps.newp.focus();
    document.ps.newp.select();
    return false;}
    else{
    if (np1.value!=np.value)
    {alert("两次密码输入不一致");
    document.ps.newp.focus();
    document.ps.newp.select();
    return false;}
    else{return true;}
    }
    }
    }
    </script>
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 19:31:201楼 得分:0
    lz把问题写明白点,把调用JS的表单也列出来
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 20:19:512楼 得分:0
      <form action="chpwd_conf.jsp" method="post" name="ps">
    <table>
    <br>
    <tr>
    <td> </td>
    <td>
    <input type="hidden" name="uname" value=" <%=session.getAttribute("aname")%>"/>
    </td>
    </tr>
    <tr>
    <td>请输入旧密码: </td>
    <td> <input type="password" name="oldp"/>
    <td>
    </tr>
    <tr>
    <td>请输入新密码: </td>
    <td> <input type="password" name="newp"/>
    </td>
    <tr>
    <td>请确认新密码: </td>
    <td> <input type="password" name="newpp"/>
    </td>
    </tr>
    <tr>
    <td>
    <input type="submit" name="submit" value="提交" onclick="return chk();"/>
    </td>
    <td>
    <input type="reset" name="reset" value="重置"/>
    </td>
    </tr>
    </table>
    </form
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 20:21:423楼 得分:0
    最后少了个括号...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 20:27:124楼 得分:0
    建议不要用form标单的onSubmit()方法调用你的javascript函数,用提交按钮的onClick()方法调用。在javascript方法中提交form标单。
    如果验证失败就return false.否则才提交标单,这样应该没问题。因为在使用form的onSumbit方法的时候虽然return false但是javascritp的事件有时候会冒泡继续执行
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 20:47:175楼 得分:0
    是用的onclick()啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 20:54:286楼 得分:0
    当然是表单提交了才会到下一页啊,LZ检查一下js!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 20:55:027楼 得分:0
    <form action="chpwd_conf.jsp" method="post" name="ps" onsubmit="return chk();">
    <table>
    <br>
    <tr>
    <td> </td>
    <td>
    <input type="hidden" name="uname" value=" <%=session.getAttribute("aname")%>"/>
    </td>
    </tr>
    <tr>
    <td>请输入旧密码: </td>
    <td> <input type="password" name="oldp"/>
    <td>
    </tr>
    <tr>
    <td>请输入新密码: </td>
    <td> <input type="password" name="newp"/>
    </td>
    <tr>
    <td>请确认新密码: </td>
    <td> <input type="password" name="newpp"/>
    </td>
    </tr>
    <tr>
    <td>
    <input type="submit" name="submit" value="提交" />
    </td>
    <td>
    <input type="reset" name="reset" value="重置"/>
    </td>
    </tr>
    </table>
    </form>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 21:19:438楼 得分:0
    这也一样啊,肯定是JS中的判断逻辑出错了,但就是找不出错在哪,请大家帮忙看下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 21:43:369楼 得分:0
    onclick="return chk();" 改为onclick="chk();" (去掉return) 就可以了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yami251139
    • 等级:
    发表于:2008-05-13 21:50:4010楼 得分:0
    onclick="return chk();"/...........
    去掉return
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 22:04:5611楼 得分:0
    去掉return仍然不行,
    return chk();和chk();为什么有时要用return,这两者有什么差别?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-13 23:24:2712楼 得分:20
    你的第11行代码变量写错了
    document.ps.oldp.select(); 写成了document.ps.oldpp.select();
    写代码养成好习惯,相同变量最好复制粘贴,手写容易出错
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 09:20:1413楼 得分:0
    楼上正解
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 09:34:4714楼 得分:0
    在你执行true的时候不要写true
    而直接执行
    else{return true;} 换成  window.ps.submit.click();

    你点击事件发生的时候只判断是true还是false 那么只有当true的时候form 提交!这样才能把你正确信息传到下一页面!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 09:35:3215楼 得分:0
    return false; ==> return;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 12:15:4116楼 得分:0
    引用 12 楼 hanpoyangtitan 的回复:
    你的第11行代码变量写错了
    document.ps.oldp.select(); 写成了document.ps.oldpp.select(); 
    写代码养成好习惯,相同变量最好复制粘贴,手写容易出错

    是对的,改掉就正确了,谢谢大家的回答
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-14 12:28:3717楼 得分:0
    <input type="submit" name="submit" value="提交" onclick="return chk();"/>
    这里不要;的,还有
    document.ps.oldp.select(); 写成了document.ps.oldpp.select(); 

    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved