<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<!--上面的不能删除或修改,因涉及到样式-->
<HTML>
<HEAD><TITLE>登录</TITLE>
<META content="text/html; charset=utf-8" http-equiv="Content-Type">
<META content="no-cache, must-revalidate" http-equiv="Cache-Control">
<META content="0" http-equiv="expires">
<!--
function check(){
  if(document.getElementById("usrname").value.length<3 || document.getElementById("usrname").value.length==""||document.getElementById("usrname").value=="请输入用户名") {
  alert(document.getElementById("usrname").value);
loginForm.Login.focus();
return false;
}}
//-->
</SCRIPT>
<BODY >
<FORM  name="loginForm" action="check.jsp" method="post" onsubmit='return check()'>
<INPUT onblur="if(this.value=='') this.value='请输入用户名';this.className='inputstyle';return true;" 
  id="usrname" class="inputstyle" onfocus="if(this.value=='请输入用户名') this.value='';this.className='inputstylefocus';return true;"  value="请输入用户名" maxLength="20" style="line-height:26px"  name="Login" autocomplete="off">
 <INPUT class="loginbtn" onMouseDown="this.className='loginbtnfocus';return true;" value="提交" type="submit" name="login"> 
</FORM>
</BODY >
</HTML>在其他浏览器下正常,在firefox会提交到check.jsp页面

解决方案 »

  1.   

    正常提交都會post 在check.jsp
      

  2.   

    这个前边加上<script>就行了<!--
    function check(){
      

  3.   

    你的意思是不想提交到check.jsp?其他浏览器正常可能是因为你的<script></script>标签不完整,你上面的脚本被无视了。正常的情况下,这个页面只要输入的用户名长度大于3,你得check()是会返回true的,所以表单在onsubmit检测到true就会向check.jsp post,无论哪种浏览器都一样(把前面的script标签补齐)。
      

  4.   

    不好意思
    <SCRIPT LANGUAGE="JavaScript">
    是漏加上了!
    我原来的代码上是存在的!我的意思是,当点击  提交  按钮时,
    input中不输入资料
    在其他浏览器下 会运行 alert()
    因为有设定 return false;
    所以不会跳转到 check.jsp页面但在firefox下
    会运行 alert()
    然后 跳转到 check.jsp 页面
      

  5.   

    问题出在这句话:“loginForm.Login.focus();”因为你在Login的onfocus事件中,最后return true;把它注释掉吧。FireFox的JS是比较奇怪的。
      

  6.   

    把 loginForm.Login.focus();
    改成
    document.getElementById("usrname").focus();
    就可以了!谢谢
    感谢 几位 的帮忙结贴了!!