2

一般的な Asp.Net フォームを持つ Asp.Net Web ページがあります。ページの外側の「境界線」 (つまり、メイン メニュー、ヘッダーなど) は、マスター ページを使用する通常の Asp.Net コードを使用して構築されます。そのページのコンテンツでは、jQuery を使用して動的フォームを表示し、サーバーにデータを送信します。

そのページでリターン キーを押すと、(多かれ少なかれ) ランダムなページにジャンプしますが、これはユーザーが期待するものではありません。;-)

いくつかのテキスト領域があり、ユーザーは改行を入力できる必要があります。それ以外の場合は、return キーを完全に無効にしても問題ありません。それを行うための防弾方法はありますか?

キープレスイベントをキャプチャして\ x13を無視するソリューションをWebで見つけましたが、実際には機能しません。ページがロードされたばかりである限り機能しますが、いくつかの要素をクリックするとすぐに、リターンキーは通常どおりに動作します。

どんなヒントでも大歓迎です!

アヒム

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

これが私がこの問題を修正するために使用したものです。

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

以下のように Panel を使用することで実現できます。

 <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 に答える