Box 1 <input type="text" name="txt1" onblur="this.focus()">

解决方案 »

  1.   

    多谢你的帮忙,不过,不好意思,我的意思是在onchang里,,不是onblur,,
    onblur只是举了个其他的例子说明"return false"
      

  2.   

    onchange="return false"就是取消onchange事件,意思跟undo差不多,比如textbox中原来的值是1234,当你在textbox中输入的时候就触发onchange事件,onchange="return false"这就是撤消onchange事件,所以你输入的值无效,textbox的值还是1234
    但是onblur事件是不可撤消事件,也就是说onblur="return false"是无效的,你可以查查这方面的资料,web的事件是有可撤消和不可撤消两种的。
      

  3.   

    看到有人和我交流,真是激动万分感谢。
    Box 1 <input type="text" name="txt1" value="ddd" onchange="return false">
    可是这个东西的现象是,,,你可以改里面的东西,但是,,然后你就什么也干不了了,你也不能再点别的东西。
    另外,有没有别的方法可以实现我的目的?
      

  4.   

    onchange="return false"只是撤消onchange事件,当你再点别的东西时,触发的是onblur事件,所以你是可以点其他的东西。
    你想要的目的是不是,当用户输入的值不合法时,撤消他输入的值,并不让他点其他的东西?如果是这就样:
    <input type=text onchange="return check(this)" onblur="check()">
    <script language="javascript">
    function check(theObject){
    if (....){
        theObject.focus();
        return false;
    }else{
        return true;
    }
    }
    </script>
      

  5.   

    嗯,了解。
    我知道这样可以完成了。
    现在的问题是,你的theObject.focus();有什么用?
    好像设不设焦点和这句话没有关系,,,,注释掉一样是可以的。
    而,如果注释掉,在不合法的时候,他的焦点还在原处,这个事情是谁来决定的?
    你所说的“撤消onchange事件”,首先,我这里是个textbox框,只有在改变了内容,并且,焦点要离开的时候才执行,,,而你说撤销这个事件,我不太理解,,,在onchange="return false">这里,onchange事件什么也没有做,只做了个撤销动作?撤销什么?
    不好意思,我刚接触javascript,很多事情不太清楚。谢谢!
      

  6.   

    不好意思。我的目的 tianch(晴空)说的不错,做法也能实现。
    当用户输入的值不合法时,不让他点其他的东西,继续在这个textbox里进行编辑。我主要是想问,第一所谓的撤销onchange事件,指的是什么意思。为什么焦点还在原处。
    第二,有没有其他的方式实现(这个问题相对次要)。
      

  7.   

    1.onchange事件发生在失去焦点并且值发生改变时
    当值发生改变,失去焦点就触发了onchange,这时
    return false,所以焦点不能离开
    下面这个才是对象一改变就触发
    onpropertychange 当在对象上发生对象上发生属性更改时触发。
    2.可以在onkeypress时不让用户输入也可以解决的
      

  8.   

    return false 这个东西叫什么?我去查一下,看看都有什么地方可以用,什么功能。
      

  9.   

    555,,我要结帖吗?说实在的我还是不太明白。不过,上面的朋友说的都对,也很热情。
    我主要是想问,第一所谓的撤销onchange事件,指的是什么意思。为什么焦点还在原处。
      

  10.   

    <p>onChange 事件在失去焦点时才触发,判断值是否已经改变。</p><p>
    Box 1 <input type="text" name="txt1" onchange="alert('不能改变 Box 1 的值!');this.value='';return false">
    </p>
    <p>
    Box 2 <input type="text" name="txt2" onblur="alert('失去焦点!');return false">
    </p>
      

  11.   

    各位老大,我知道你们肯定比我了解的多多了,我现在知道这个现象,就是不理解return false的道理。适用范围。
      

  12.   

    这个问题是这样的,当你在文本框上编缉的后,再点击其它的控件就触发了文本框的change事件,将焦点移到其它的控件上,但是你的onchange事件设置成了return false,也就是说当change事件发生时就取消change事件,导致change事件不能执行,所以焦点移不到其它的控件上
      

  13.   

    OK,如果这么说的话,onblur事件取消了以后,为什么还可以移到其他控件上?那,其他的事件对return false有是怎么解释的呢?
    不好意思,我是不是太较真了?主要是不明白,,呵呵
      

  14.   

    事件分两种,一种事件可撤消,一种事件不可撤消。onblur属于不可撤消的事件,所以return false对他无效。你可以参考一下《javascript完全手册》这本书。