如何使用Javascript单击Backspace键清除文本框?

时间:2012-07-30 06:38:13

标签: c# javascript asp.net datepicker

我正在处理包含文本框的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>

我在文本框的按键事件上调用此函数。 preoblem是它允许一次只删除一个字符。

如果用户按下退格按钮,我希望清除整个文本框。在这里坚持如何实现这一目标。

提前致谢 AKHIL

  

PS:使用C#代码实现这一目标的任何方法也非常有用。

4 个答案:

答案 0 :(得分:2)

你从js函数返回true,它也执行它的keypress事件。所以,尝试返回false。 您可以尝试以下代码:

  

function allowBackSpace(val){

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

答案 1 :(得分:1)

尝试此功能。

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

    if (keyCodeEntered == 8) 
    {
         $(this).val("");
         return false;
     }
     return false;
  });
});

答案 2 :(得分:1)

使用Jquery

$("#txtDate").keyup(function(event){
    if(event.keyCode == 8){
        $("#txtDate").val("");
        return false;
    }
});

答案 3 :(得分:1)

function allowBackSpace(e,obj)
{
    var evt=e||window.event;
    if(evt.keyCode==8)
    {
        obj.value='';
    }
}

现在,使用onkeydown事件而不是onkeypress

<textarea onkeydown='allowBackSpace(event,this)'></textarea>