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

用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> &nbsp;&nbsp;&nbsp; <INPUT TYPE= 'text ' NAME= 'txt1 ' size= '20 ' value= '不可以更改啊 ' onkeydown= 'parent.input(this,event.keyCode) '> ";
oPopup.show(100, 100, 400, 300, document.body);
}
</SCRIPT>
------解决方案--------------------
楼上是实现了,但用的时候有点怪怪的。个人觉得用它显示信息可以,编辑信息不好用。。

------解决方案--------------------
createPopup这个窗口觉得一般来讲都是显示东西让人看的,如果要弄输入域,还是用模态窗口好些。