有二输入框A 和 B
当A输入完成时,有没有办法,让它五秒后自动提交(五秒的过程就是让它判断我是不是要输入B,如果B不输入了就提交),而不是手动按提交按钮当A输入完成,再输入B的时候,不要执行A的五秒自动提交,等待B完成输入再提交,这个我可以简单点,用手动提交
问题的关键在于,怎么做到当我要输入B时,停止A的自动提交呢?
大家给点思路,有热心的朋友直接出代码,就更感谢了

解决方案 »

  1.   

    <script>
    var timer
    function post(){document.frm.submit();}
    </script>
    <form  method='get' name='frm'>
    a:<input type="text" onblur="setTimeout('post()',5000);"/><br/>
    b:<input type="text" onfocus="clearTimeout(timer)" onblur="setTimeout('post()',5000);"/><!--focus时清除计时器-->
    </form>
      

  2.   

    <script>
    var timer
    function post(){document.frm.submit();}
    </script>
    <form  method='get' name='frm'>
    a:<input type="text" onblur="timer=setTimeout('post()',5000);"/><br/><--更正下这里,忘记赋值了-->
    b:<input type="text" onfocus="clearTimeout(timer)" onblur="setTimeout('post()',5000);"/><!--focus时清除计时器-->
    </form>
      

  3.   

    谢谢楼上,一会给分
    能不能再加强下onblur="timer=setTimeout('post()',5000);"这是当鼠标焦点离开A时开始执行的,有没有办法,就是在A输入完就执行定时,而不是要先失去焦点因为我这做的是一个条形码输入,当进入页面是,先焦点自动定在A上,然后扫描器读号码到A上,这里可以理解成复制一个字符到A上,然后在不用动鼠标的情况下,自动提交,如果用onblur,那就要用到鼠标操作,有没有办法可以做出我这种意思来?
      

  4.   

    IE的话可以onpropertychange
    FF就比较麻烦了,要绕一个大圈子才能做出和ie的onpropertychange差不多的功能来
      

  5.   


    onpropertychange 怎么做?
    这里不需要考虑浏览器的兼容性,因为我是给朋友定制,到时候是做局域网用的,我可以给他们搭建兼容平台请帮我出出办法好吗
      

  6.   

    onpropertychange ="timer=setTimeout('post()',5000);" 是可以不用在失去焦点时才触发,可好像如果这样做了B的onfocus="clearTimeout(timer)" 会失去作用,怎么处理
      

  7.   

    有效果的,你可能没看清楚,我在b里面也使用了自动5秒后提交,如果进入b后不需要自动提交,你把b的onblur事件去掉firefox使用oninput<script>
    var timer
    function post(){document.frm.submit();}
    </script>
    <form  method='get' name='frm'>
    a:<input type="text" name="a" oninput=timer=setTimeout('post()',5000);" onpropertychange="timer=setTimeout('post()',5000);"/><br/>
    b:<input type="text" name="b" onfocus="clearTimeout(timer)" />
    </form>
      

  8.   

    1、FF下 oninput 只对手工输入做出反应,对粘贴或程序向文本框写数据无效,要想再FF下实现onpropertychange()很麻烦
       当然LZ不考虑兼容就没什么问题了,呵呵 2、正如LS所说,B的onfocus="clearTimeout(timer)"不应该受到影响的
      

  9.   


    var timeCount=0;
    function onMouseInText(flag)
    {
      var flag=true;
      flag=flag;
      timeCount++;
      if(timeCount==5)
      {
         if(document.all.B.value==""&&flag==true){
          document.all.form1.submit();
         }
         else{
         }
      }
      timeCount=0;
      setTimeout('onMouseInTextA()',1000);
    }
    <form name="form1">
    <input name="A" type="text" onClick="onMouseInText(true)">
    <input name="B" type="text" onClick="onMouseInText(false)">
    </form>
    不知道这样你满意不
      

  10.   

    请问  怎样 在extjs 的cellEditing 可编辑文本框中  不失去焦点保存数据到数据库