【问题标题】:jQuery clear input text on focusjQuery清除焦点上的输入文本
【发布时间】:2012-12-20 18:52:44
【问题描述】:

我有这个jQuery 脚本:

$(document).ready(function() {
    $(':input:enabled:visible:first').focus();
    $('.letters').keyup( function() {
        var $this = $(this);
        if($this.val().length > 1)
            $this.val($this.val().substr(0, 1));
            $(this).next('input').focus();
        });
});

它将在页面加载时将焦点设置在第一个 input='text' 字段上。当用户输入一个字符时,它会将焦点移到下一个输入字段。它还将限制每个字段中允许的字符数(目前为 1 个字符)。

我想知道是否可以清除焦点输入字段的当前值。无论是当用户单击光标以聚焦该字段时,还是当$(this).next('input').focus(); 将焦点设置在下一个输入字段上时。

也可以验证字符只允许字母字符吗?

【问题讨论】:

    标签: jquery input focus


    【解决方案1】:

    要过滤输入,请使用

    ​$('input').on('keydown', function(e) {
        if( !/[a-z]|[A-Z]/.test( String.fromCharCode( e.which ) ) )
            return false;
    });​​​​​​​​
    

    要清除clickfocus 上的输入字段,请使用

    $('input').on('click focusin', function() {
        this.value = '';
    });
    

    请注意,当您单击当前表单中的非焦点输入控件时,此事件将触发两次。

    演示http://jsfiddle.net/xbeR2/

    【讨论】:

    • keydown 函数给了我SyntaxError: illegal character});
    • 可能。那我再仔细看看!谢谢。
    • @David:添加了演示链接。
    • 是否可以从该验证中排除 Backspace 和 Delete 键?
    【解决方案2】:

    要回答您的焦点问题,是的,您可以这样做:

    $("input").focus(function() {
      this.value = "";
    });
    

    要回答唯一允许字母的问题,这里有been asked before

    【讨论】:

    • 谢谢。它就像一个魅力!我也会看看你的链接。
    • @David 很高兴你成功了。不要忘记将其中一个解决方案标记为已接受的答案,以便其他人知道您的问题已解决。
    【解决方案3】:

    使用这个

    $( document ).ready(function() {
      var search_text_s = "WYSZUKAJ";
    
      // author ZMORA
      // search input focus text
      $("#searchClear").focus(function() {
        if(this.value == search_text_s){
          this.value = "";
        }
      }).blur(function() {
        if(this.value != search_text_s){
          this.value = search_text_s;
        }
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 2013-05-13
      • 2017-07-31
      • 2011-04-13
      • 1970-01-01
      相关资源
      最近更新 更多