用js  写了一个前面数据验证! 出现了下面问题:js 片段//
function check() {
if(myForm.username.value.length < 6 || myForm.username.value.length >15) {
window.alert("用户名必需有6~15的字符");
myForm.username.focus();
return false;
}
}jsp 片段//
  <form action="register.jsp" method="post" name="myForm" onsubmit="return check()">
<table width="80%" align="center" border="1"  cellspacing="0" bordercolor="#999999">
<tr align="center">
<td colspan="2"><br>用户注册</td>
</tr>
<tr>
<td width="15%">用户名:</td>
<td><input type="text" name="username" maxlength="15" size="30" id="name"/></td>
<tr>问题是 当我在 用户名中 输入 123 提交的时候: 会出现对话框"用户名必需有6~15的字符" 但 后面的js 代码就不执行了
比如 用户名输入框数据清除 , 而且还发生了jsp页面跳转! (这应该不会跳转的) 怎么解决啊!!

解决方案 »

  1.   

    把form当作参数传过去。function check(form) { 
      if(form.username.value.length < 6 || form.username.value.length >15) { 
       alert("用户名必需有6~15的字符"); 
       form.username.focus(); 
       return false; 
     } 

    <form action="register.jsp" method="post" name="myForm" onSubmit="return check(myForm)"> 
    <table width="80%" align="center" border="1"  cellspacing="0" bordercolor="#999999"> 
    <tr align="center"> 
    <td colspan="2"> <br>用户注册 </td> 
    </tr> 
    <tr> 
    <td width="15%">用户名: </td> 
    <td> <input type="text" name="username" maxlength="15" size="30" id="name"/> </td> 
    <tr> 
    “比如 用户名输入框数据清除 , 而且还发生了jsp页面跳转! (这应该不会跳转的) 怎么解决啊!!  ”
    这句什么意思??
      

  2.   

     试了下你的方法,也没有问题。。
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
    <script language="JavaScript">
    function check() { 
      if(myForm.username.value.length < 6 || myForm.username.value.length >15) { 
       alert("用户名必需有6~15的字符"); 
       myForm.username.value="";
       myForm.username.focus(); 
       return false; 
     } 
    } </script></head>
    <body>
    <form action="register.jsp" method="post" name="myForm" onSubmit="return check()"> 
    <table width="80%" align="center" border="1"  cellspacing="0" bordercolor="#999999"> 
    <tr align="center"> 
    <td colspan="2"> <br>用户注册 </td> 
    </tr> 
    <tr> 
    <td width="15%">用户名: </td> 
    <td> <input type="text" name="username" maxlength="15" size="30" id="name"/> 
    <input type="Submit" name="Submit"/></td> 
    <tr/> 
    </form>
    </body>
    </html>
      

  3.   

    对.用document.myForm试试 ..
    比如 用户名输入框数据清除 
    document.myForm.username.value="";
    而且还发生了jsp页面跳转!
    document.myForm.submit();提交FORM表单到register.jsp 相当于submit
      

  4.   

    if(myForm.username.value.length < 6 || myForm.username.value.length >15) { 
    所以你输入123 alert后,就是return false, 后面的js当然不执行了。
    用户名输入框数据清除 , 而且还发生了jsp页面跳转!的问题。
    onSubmit="return check()"> 
    把这改了 用js document.myForm.submit();的方式。
      

  5.   

    支持geovil,不使用onSubmit="return check()",使用document.myForm.submit();
      

  6.   

    应该是LZ自身代码逻辑有问题吧可以不用FORM里的submit提交表单
    直接在JS里用document.myForm.submit()方式来提交