2

我有一个 Asp.Net 网页,具有常见的 Asp.Net 表单。页面的外部“边框”(即主菜单、标题等)是使用普通 Asp.Net 代码使用母版页构建的。该页面的内容使用 jQuery 来显示动态表单并将数据发送到服务器。

如果我在该页面上按下返回键,我会跳转到(或多或少)随机页面——这不是用户所期望的。;-)

有一些文本区域,用户必须能够输入换行符。否则完全禁用返回键就可以了。有什么防弹方法可以做到这一点吗?

我在网上找到了一些解决方案,它们捕获按键事件并忽略 \x13,但这并没有真正起作用。只要页面刚刚加载,它就可以工作,但是一旦我点击了一些元素,返回键的行为就像往常一样。

任何提示将不胜感激!

阿奇姆

4

3 回答 3

1

这是我昨天晚上整理的一些脚本,但由于我的笔记本电脑没电了,所以无法发布它:(

注意:我正在使用jQuery。但是您可以轻松地重新编写它以使用纯 javascript。

<html>
<head>
<title>Enter Key</title>
<script src="jquery-1.2.6.js"></script>
</head>
<body>
<div id="prompt" style="color:#eeffee;width:50px;height:50px;"></div>
<textarea id="txt" cols="25" rows="10"></textarea>
<script type="text/javascript">
$(document).ready(function(){
    var ar=$("textarea").add($("input"));
    var elems=new Array();
    var key = 13;

    $(ar).each(function(){
        var i=$(this).attr("id");
        if(i && i!=="")
            elems.push(i);
    });
    elems.sort();

    $().keypress(function(e){
        var k=e.keycode || e.which;
        var id = e.target.id;
        if(k === key){
            if(id){
                var ar=$.grep(elems,function(a){ return a==id;});
                if(ar.length === 0){
                    $("#prompt").html("Eating ");
                   return false;
                }else{
                    $("#prompt").html("Allowed");
                }               
            }else{
                $("#prompt").html("Eating ");
                return false;
            }           
        }
    });
});
</script>
</body>
</html>
于 2009-11-25T02:20:26.973 回答
0

您可以通过使用下面的面板来实现它。

 <asp:Panel runat="server" DefaultButton="">
other html/asp tags
    </asp:Panel>

应该有其他有效的方法。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.panel.defaultbutton.aspx

于 2009-11-24T13:41:13.950 回答
0

这是我用来解决此问题的方法。

<form runat="server" defaultbutton="DoNothing">
        <asp:Button ID="DoNothing" runat="server" Enabled="false" style="display: none;" />
于 2010-04-16T20:48:23.283 回答