用window.createPopup()打开的窗口中Input元素的输入问题
<HTML>
<HEAD>
<TITLE> Popup Example </TITLE>
<SCRIPT LANGUAGE= "JavaScript ">
var oPopup = window.createPopup();
function ButtonClick()
{
var oPopBody = oPopup.document.body;
oPopBody.style.backgroundColor = "lightyellow ";
oPopBody.style.border = "solid black 1px ";
oPopBody.innerHTML = " <table> <tr> <td nowrap> Click outside <B> popup </B> to close. <br> <input id=t1> </td> </tr> </table> ";
oPopBody.style.overflow = "auto ";
oPopup.show(100, 100, 180, 200, document.body);
}
</SCRIPT>
</HEAD>
<BODY>
<BUTTON onclick= "ButtonClick() "> Click Me! </BUTTON>
<div id=div1> slkdflskf </div>
</BODY>
</HTML>
在上面这个HTML文件中,按按钮弹出一个窗口,窗口中有一个 <Input> 元素,可是却没法输入东西上,哪位大位知道是怎么回事吗?要怎么才能输入呢
------解决方案--------------------必须设置createPopup对象自身focus()
例子:
主页面:
var ES_win=createPopup()
在ES_win里:
document.focus()
注意:暂时发现虽然可以输入,但是不能删除,要写程序才行;也不能输入A-Z键以外的东西!
------解决方案-------------------- <input type= "button " value= "createPopup " onclick= "tt() ">
<SCRIPT>
function input(o,keyCode){
//只能输入大小字母和数字
var c=keyCode
//alert( "keyCode= "+c)
if(c> =96 && c <=105){ //小键盘0-9
c -= 96-48
}
if((c> =48 && c <=57) || (c> =65 && c <=90)){ //数字键0-9,字母键(大写)
o.value += String.fromCharCode(c);
}else if(c==8){ //Back
o.value = o.value.slice(0,-1);
}else if(c==46){ //Del
o.value = o.value.slice(1);
}else{
}
}
function tt(){
var oPopup = window.createPopup();
var oPopBody = oPopup.document.body;
oPopBody.style.backgroundColor = "lightyellow ";
oPopBody.style.border = "solid black 1px ";
oPopBody.innerHTML = "Sample: <p> <INPUT TYPE= 'text ' NAME= 'txt1 ' size= '20 ' value= '不可以更改啊 ' onkeydown= 'parent.input(this,event.keyCode) '> ";
oPopup.show(100, 100, 400, 300, document.body);
}
</SCRIPT>
------解决方案--------------------楼上是实现了,但用的时候有点怪怪的。个人觉得用它显示信息可以,编辑信息不好用。。
------解决方案--------------------createPopup这个窗口觉得一般来讲都是显示东西让人看的,如果要弄输入域,还是用模态窗口好些。