为了在WEB页面中完成全键盘操作

和C/S一样,我需要在商品编号输入框中输入若干数字,按下回车后,跳出一个网页对话框,里面是和商品编号有关的GridView,选中后关闭网页对话框,将信息带回原来的页面。

 

//这段代码用来定义弹出对话框

if (!Page.IsClientScriptBlockRegistered("clientScript"))
        {
            String strScript = "<script>/r/n";
            strScript += "function OpenWinDDH(){/r/n";
            strScript += "document.aspnetForm.ctl00_ContentPlaceHolder1_HiddenCONTROL.value='NOSELECT'/r/n";
            strScript += "var str=window.showModalDialog('PingCaiGouJiHuaShouHuoCommonPage.aspx?ID=DDH',document.aspnetForm.ctl00_ContentPlaceHolder1_TextBoxDingDanHao.value,'dialogHeight:600px;dialogWidth:1000px')/r/n";
            strScript += "if(str!=null)  document.aspnetForm.ctl00_ContentPlaceHolder1_HiddenCONTROL.value=str/r/n";
            strScript += "}/r/n";
            strScript += "</script>";
            Page.RegisterClientScriptBlock("clientScript", strScript);

        }   

 

 ButtonSearch.Attributes.Add("onclick", "OpenWinDDH()");

 

//这段代码用来定义输入框回车后执行的操作

   if (!IsPostBack)
        {
            TextBoxDingDanHao.Attributes.Add("onkeypress", "EnterTextBoxAtDDH('ctl00_ContentPlaceHolder1_TextBoxDingDanHao','ctl00_ContentPlaceHolder1_ButtonSearch')");
......

 

//和上面相关的JavaScript

function EnterTextBoxAtDDH(textbox,button)
{
    if(event.keyCode == 13)
    {
        var buff=document.all[textbox].value;
        event.returnValue = false;
        
        if(buff.length>5)
        {
            document.all[button].focus();
            document.all[button].click();
         }
    }
}

 

       上述代码不包括红色代码,在以前简单的页面中使用正常,但在这次界面很复杂的情况下发生了问题,

输入框回车弹出对话框再关闭后,如果再次输入按回车,则失效了,没有对话框弹出。同时界面上其他的输入回车的功能也不正常。多次测试后加入了红色代码成功了,这个时候的特点是ButtonSearch周围一直有个黑框。我估计是因为弹出对话框关闭后当前页面没有获得客户端意义上的焦点,而document.all[button].focus();就解决了这个问题。另外如果不用AJAX的UpdatePanel是没有这个问题的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值