<form method="post">
用户名:<input type="text" name="user" onBlur="checkValue(this)"><br>
密码:<input type="password" name="pass" onBlur="checkValue(this)"><br>
<input type="submit" name="submit1" value="递交">
</form>
<script language="javascript">
function checkValue(txtField)
{
if(txtField.value == "")
txtField.focus();
return false;
}
function checkPass(frm)
{
if(frm.value == "")
frm.focus();
                  } 
</script>

解决方案 »

  1.   

    很少有需求需要在在onblur的同时focus的
    这个问题我也没法解决
    因为我做过的项目从来没有这种需求
      

  2.   

     onBlur="return checkValue(this)"
      

  3.   

    想法不合理
    一般仅仅只是提示一行字不为空而不会强制不能离开焦点
    像你的这种想法只能这样
    在每个输入框的onblur事件检查如果为空则在右边提示一行字
    强制焦点只能在form的submit事件里一个一个去检查
    先检查用户名是否为空,为空就获取焦点
    不为空再检查密码框是否为空,为空就给密码框焦点
    全部检查完都不为空就submit
      

  4.   

    提交的时候也调用onBlur就可以了,每次调用完focus之后要return false
      

  5.   

    或者这样吧<form method="post" name="f">
    用户名:<input type="text" name="user" onBlur="checkValue()"><br>
    密码:<input type="password" name="pass" onBlur="checkValue()"><br>
    <input type="submit" name="submit1" value="递交">
    </form>
    <script language="javascript">function checkValue()
    {
    if(f.user.value == ""){
    f.user.focus();
    return false;
    }
    if(f.pass.value == ""){
    f.pass.focus();
    return false;
    }
    }
    </script>
      

  6.   

    用延时闭包:
    setTimeout(function(){
        element.focus();
    },10);
      

  7.   

    你的密码也用的是checkValue(this),改为checkPass(this)
    function checkPass(frm)最后也加上return false;