【问题标题】:How to clear a textbox on single press of Backspace key using Javascript?如何使用 Javascript 单按 Backspace 键清除文本框?
【发布时间】:2012-07-27 19:43:36
【问题描述】:

我正在开发一个包含文本框的 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;
   }

更新:调用此函数

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

我在文本框的按键事件中调用这个函数。问题是它一次只允许删除一个字符。

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

提前致谢 阿基尔

PS:任何使用 C# 代码实现此目的的方法也会非常有帮助。

【问题讨论】:

  • 你能发表一些关于这段代码的解释吗?例如,val 的论点是什么?
  • 您是否尝试过将焦点返回到该文本框?
  • 有时退格事件取决于浏览器的兼容性。您使用的是哪个浏览器??
  • @JibiAbraham 我已经更新了代码
  • @JohnnBlade 不,我没试过。你能用一些代码解释一下吗?

标签: c# javascript asp.net datepicker


【解决方案1】:

您正在从 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; }

【讨论】:

  • 抱歉没用。我也已将调试器附加到此功能。它甚至没有在退格或按下 dlelete 按钮时调用 javascript 函数。
【解决方案2】:

试试这个功能。

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

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

【讨论】:

    【解决方案3】:

    使用 Jquery

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

    【讨论】:

      【解决方案4】:
      function allowBackSpace(e,obj)
      {
          var evt=e||window.event;
          if(evt.keyCode==8)
          {
              obj.value='';
          }
      }
      

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

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

      【讨论】:

        猜你喜欢
        • 2019-02-22
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        • 1970-01-01
        • 2015-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多