2

テキスト ボックスを含む Web アプリケーションで作業しています。テキスト ボックスの値は日付ピッカーから入力され、そのプロパティはデフォルトで読み取り専用です。今まですべてがうまくいっています。しかし、バックスペースボタンを押すと問題が発生します。テキスト ボックスをクリアするのではなく、前のページにリダイレクトしています。

このサイトの以前の回答を参照して、JavaScript関数でこの状況を処理しました。

 function allowBackSpace(val) {
    var keyCodeEntered = (event.which) ? 
                             event.which : 
                             (window.event.keyCode) ? 
                                 window.event.keyCode : 
                                 -1;
    if (keyCodeEntered == 8) {
        $(this).val(""); 
        return true;
    }
    return false;
   }

UPDATE :この関数はから呼び出されます

<asp:TextBox ID="txtDate" 
             Style="margin-left: 5px; margin-right: 5px" 
             runat="server"
             Width="88px" 
             onkeypress="return allowBackSpace(this);">
</asp:TextBox>

テキストボックスのキープレスイベントでこの関数を呼び出しています。問題は、一度に 1 文字しか削除できないことです。

ユーザーがバックスペースボタンを押した場合、テキストボックス全体をクリアしたい. これを達成する方法としてここに立ち往生しました。

前もって感謝します

PS: C# コードを使用してこれを達成する方法も非常に役立ちます。

4

4 に答える 4

2

keypress イベントも実行する js 関数から true を返しています。したがって、false を返してみてください。次のコードを試すことができます。

関数 allowBackSpace(val) {

var keyCodeEntered = 
     (event.which) ? event.which : 
                 (window.event.keyCode) ? window.event.keyCode : -1;
if (keyCodeEntered == 8) 
{
     $(this).val("");
     return false;
 }
 return false; }
于 2012-07-30T06:45:07.737 に答える
1

この機能を試してください。

 $("#txt1").keydown(function(eve){
    var keyCodeEntered = eve.keyCode? eve.keyCode : eve.charCode;

    if (keyCodeEntered == 8) 
    {
         $(this).val("");
         return false;
     }
     return false;
  });
});
于 2012-07-30T07:15:10.250 に答える
1
function allowBackSpace(e,obj)
{
    var evt=e||window.event;
    if(evt.keyCode==8)
    {
        obj.value='';
    }
}

onkeydown次に、 onkeypress の代わりに event を使用します

<textarea onkeydown='allowBackSpace(event,this)'></textarea>
于 2012-07-30T07:48:58.277 に答える
1

Jquery を使用する

$("#txtDate").keyup(function(event){
    if(event.keyCode == 8){
        $("#txtDate").val("");
        return false;
    }
});
于 2012-07-30T07:21:56.887 に答える