利用js生成文本框的setfocus的问题

 Asp.Net的DataGrid与GridView控件确实强大,尤其是被专注于呈现数据时。而当你需要拥有完整的增删改差功能的DataGrid时,也不是什么难事,但如果你的客户需要一种无刷新页面的实现呢?

 

    我就碰到了这个问题,因为客户的下属公司访问总部的网络时常不稳定,每次对服务端方法的访问都是带有不小的网络传输开销。以至于,利用DataGird实现的增删改差功能,每次刷新页面都会明显地顿一下。这是客户无法忍受的.......

 

    或许这个时候,你会质疑:为什么不将这些功能分拆成几个页面来做呢?明显效率和实现难度会大大减少。我只能说一句,任何设计都会在客户的需求面前碰到难题。而这些也不是本文所讨论的话题。

 

    不妨做这样一个实验,新建一个文本文档,后缀名改为.html。然后输入以下代码:

<html>
<script>
function setTextFocus()
{
     var t1 = document.getElementById('panel');
     t1.innerHTML = "<input type='text' id='text1' /><input type='text' id='text2' />";
 
     setTimeout(function(){
          t1.children[1].focus();
     }, 0);
     t1.children[0].focus();
}
</script>
<body onload="setTextFocus()">
     <p id="panel"></p>
</body>
</html>

    保存后,双击该页面,会发现实际获得焦点的是后面那个文本框,也就是说"t1.children[0].focus();"没有起到应有的作用。而这个页面用FF打开,反应正常,第一个框获得了焦点。我在这个地方郁闷了很久,差点就要妥协了,跟客户交待,这个要求无法实现.......

 

    后来找到一篇比较拉风的帖子,javaeye上的,貌似发帖者是个标题党呢?

    【西方人通常发现不了的bughttp://www.javaeye.com/topic/191555

    【《认识延迟时间为 0 的 setTimeout》http://realazy.org/blog/2008/03/29/understand-0-settimeout/#comment-63839

     原因就不在描述了,两篇帖子已经能为你解惑了。

 

     总结:当你在百思不得其解你的JS到底在哪里出错时,就尝试在某些操作外套一个setTimeOut函数吧,IE的BUG真的不少呢。

时间: 2024-11-05 14:46:51

利用js生成文本框的setfocus的问题的相关文章

js实现文本框根据输入内容自适应高度

利用jquery 的autoTextarea方法 JS代码,默认的参数及调用:  代码如下 复制代码 //默认的参数 $(".chackTextarea-area").autoTextarea({ maxHeight:220, minHeight:$(this).height() }) 例  代码如下 复制代码 (function($){ $.fn.autoTextarea = function(options) { var defaults={ maxHeight:null,//文本

js控制文本框输入的字符类型方法汇总

这篇文章主要给大家汇总介绍了js控制文本框输入的字符类型的各种方法,十分的简单实用,有需要的小伙伴可以参考下.     JS 控制文本框只能输入数字    代码如下: <input onkeyup="value=value.replace(/[^0-9]/g,'')" onpaste="value=value.replace(/[^0-9]/g,'')" oncontextmenu ="value=value.replace(/[^0-9]/g,''

js实现文本框选中的方法

  本文实例讲述了js实现文本框选中的方法.分享给大家供大家参考.具体如下: 这段javascript代码可解决文本框获得焦点,即使得文本框的内容被选中. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra

js显示文本框提示文字的方法

  这篇文章主要介绍了js显示文本框提示文字的方法,涉及javascript鼠标事件及样式操作的相关技巧,非常简单实用,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 <!DOCTYPE html PUBLIC "-

js限制文本框只能输入整数或者带小数点的数字

js限制文本框只能输入整数或者带小数点的数字  如何用js限制文本框输入,只允许输入整数或带一位小数的浮点数,本文分享一例代码,有需要的朋友参考下     做表单验证的时候是否会碰到验证某个输入框内只能填写数字呢,仅允许输入整数数字或者带小数点的数字.下面这段代码也许能帮到你!通过对当前输入框定义onkeypress,onkeyup,onblur事件对表单做了充分的验证,结果还是非常靠谱的.   复制代码 代码如下: <input type="text" value="

js控制文本框只输入数字和小数点的方法

 这篇文章主要介绍了js控制文本框只输入数字和小数点的方法,实例分析了javascript使用正则表达式实现限制数字和小数点的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了js控制文本框只输入数字和小数点的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: function clearNoNum(obj) { obj.value = obj.value.replace(/[^d.]/g, "");//清除"数字"和".&q

js实现文本框中输入文字页面中div层同步获取文本框内容的方法

 这篇文章主要介绍了js实现文本框中输入文字页面中div层同步获取文本框内容的方法,实例分析了javascript操作dom元素的技巧,需要的朋友可以参考下     本文实例讲述了js实现文本框中输入文字页面中div层同步获取文本框内容的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/x

JS限制文本框只能输入数字和字母方法

 这篇文章主要介绍了JS限制文本框只能输入数字和字母方法,本文给出了限制只能输入数字.限制只能输入字母.限制只能输入数字和字母3种脚本,需要的朋友可以参考下     限制只能输入数字   代码如下: // ---------------------------------------------------------------------- // <summary> // 限制只能输入数字 // demo: $(".onlyNum").onlyNum(); 限制使用了o

JS获取文本框,下拉框,单选框的值的简单实例

 本篇文章主要是对JS获取文本框,下拉框,单选框值的简单实例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1.文本框   1.1 <input type="text" name="test" id="test">   通过var t=document.getElementById("test").value把值赋给变量t,   1.2 当然也可以反过来把已知的变量值赋给文本框,例如:   var m =