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显示
}