日期:2014-05-17  浏览次数:20390 次

JS让文本框获得焦点
我有一页面,页面中有2个div--“div1” 和“div2”,页面加载时div2的display属性为none,
div1中有一按扭btn1和一文本框txt1,div2中有一按钮btn2,要求点击btn1的时候,div1隐藏,显示div2
点击btn2的时候div2隐藏,显示div1,同时txt1获得焦点
我为2个按钮的onclik事件写了一个JS方法:
<script>
var flag=0;
function closeOrShowPo() {
  var div1 = document.getElementById("div1");
  var div2 = document.getElementById("div2");
  if (flag == 1) {
  div1.style.display = "block";
  div2.style.display = "none";
  flag = 0;
  }
  else {
  div1.style.display = "none";
  div2.style.display = "block";
  flag = 1;
  var txt1 = document.getElementById("txtPalletCartonCode");
  txt1.focus();
  }

  }
</script>
 结果调试时报这样的错“由于该控件目前不可见、未启用或其类型不允许,因此无法将焦点移向它。”
这种情况该怎么解决?


------解决方案--------------------

------解决方案--------------------
txtPalletCartonCode 是不是被隐藏掉了 隐藏属性了html就不会生成txtPalletCartonCode控件
------解决方案--------------------
可以把他们都显示出来,把DIV宽高设置为0px,0px试试(比较猥琐)
------解决方案--------------------
先判断下div1的状态是否是显示。
------解决方案--------------------
不都通知你了么 要么没显示,被隐藏了

要么未启用
------解决方案--------------------
我曾经看也这样写,报错,但是把他拆分成两个方法,执行OK
------解决方案--------------------
div1,div2加上runnt=server
------解决方案--------------------
应该是隐藏了 不行就一个一个试试就出来了
------解决方案--------------------
写连个FUNCTION 一个是 btn1调 一个是btn2调 , 这样就可以了
焦点 是 document.getElementById("txt").fock();

如果非的写成一个函数 那就
判断
if(document.getElementById("div1").style.display == "block")
{
那就把div1隐藏
那就把div2显示

}
else
{
那就把div2隐藏
那就把div1显示
}