移动端h5页面,jquery输入框实时输入相关问题

//手机键盘隐藏
$('body').on('touchend', function(el) {
     if (el.target.tagName != 'INPUT') {
         $searchInput.blur();
     }
 });
var flag = false;
$searchInput.on({
    'compositionstart': function() {
        flag = true;
    },
    'compositionend': function() {
        flag = false;
    },
    'input propertychange': function() {
        if (!flag) {
            valUpdate(this);
        };
    }
});


function valUpdate(that) {
    if ($(that).val() !== '') {
        // 只能输入中文、数字、字母
        var val = $(that).val().replace(/[^\u4E00-\u9FA5\uF900-\uFA2DA-Za-z0-9']/g, '');
        if (val !== '') {
            $iptClear.css('display', 'inline-block');
        } else {
            $iptClear.css('display', 'none');
        }
        $(that).val(val);
        return;
    }

    $iptClear.css('display', 'none');
    showSearchbox(false);
}

$searchInput.InputEventClearPre({
  MaxLength: '10', //输入框能输入的最大长度,默认不限制,填写则限制
   callback: function($self, valLength, index) {
       //$self 代表绑定对象本身;
       //valLength 是输入框的字符总长度/如果要限制输入数字等,不要用valLength,建议用$self.val().length;
       // index 是绑定对象的下标, 对象集时多用
       valUpdate($self);
   }
});

//  解决系统下键盘预输入的时候会有问题
$.fn.InputEventClearPre = function(options) {
    var defaults = {
        MaxLength: '', //输入框能输入的最大长度,默认不限制,填写则限制
        callback: function($self, valLength, index) {
            //$self代表绑定对象本身;
            //valLength是输入框的字符总长度
            //index是绑定元素的下标,对象集的时候多用;
        }
    };
    var opts = $.extend({}, defaults, options || {});
    var renderclass = {
        render: "inputRender"
    };
    var cpLock = [];
    return this.each(function(i) {
        cpLock[i] = false;
        var $self = $(this);

        $self.addClass(renderclass.render);
        $self.on('compositionstart', function() {
            cpLock[i] = true;
        });
        $self.on('compositionend', function() {
            cpLock[i] = false;
            var self = $(this);
            if (!cpLock[i]) {
                if (opts.MaxLength) {
                    if (self.val().length > (opts.MaxLength - 0)) {
                        self.val(self.val().substring(0, opts.MaxLength - 0));
                        if (typeof opts.callback == 'function') {
                            opts.callback(self, self.val().length, i);
                        }
                    } else {
                        if (typeof opts.callback == 'function') {
                            opts.callback(self, self.val().length, i);
                        }
                    }
                } else {
                    if (typeof opts.callback == 'function') {
                        opts.callback(self, self.val().length, i);
                    }
                }
            }
        })
        $self.on('input', function() {
            var self = $(this);
            if (!cpLock[i]) {
                if (opts.MaxLength) {
                    if (self.val().length > (opts.MaxLength - 0)) {
                        self.val(self.val().substring(0, opts.MaxLength - 0));
                        if (typeof opts.callback == 'function') {
                            opts.callback(self, self.val().length, i);
                        }
                    } else {
                        if (typeof opts.callback == 'function') {
                            opts.callback(self, self.val().length, i);
                        }
                    }
                } else {
                    if (typeof opts.callback == 'function') {
                        opts.callback(self, self.val().length, i);
                    }
                }
            }
        });

    })
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery移动端H5页面开发中,我们可以使用以下技巧和方法: 1. 使用viewport设置移动端页面的宽度和缩放比例,例如: ```html <meta name="viewport" content="width=device-width, initial-scale=1.0"> ``` 2. 使用CSS3媒体查询来适配不同的屏幕尺寸,例如: ```css @media screen and (max-width: 768px) { /* 在屏幕宽度小于等于768px时应用的样式 */ } ``` 3. 使用jQuery Mobile框架来快速构建移动端页面,例如: ```html <!-- 引入jQuery Mobile库 --> <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"> <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> <!-- 使用jQuery Mobile组件 --> <div data-role="page"> <div data-role="header"> <h1>Header</h1> </div> <div data-role="content"> <p>Content</p> </div> <div data-role="footer"> <h4>Footer</h4> </div> </div> ``` 4. 使用touch事件来处理移动端的触摸事件,例如: ```javascript $(document).on("touchstart", function(event) { // 处理touchstart事件 }); $(document).on("touchmove", function(event) { // 处理touchmove事件 }); $(document).on("touchend", function(event) { // 处理touchend事件 }); ``` 5. 使用CSS3动画来实现移动端页面的动态效果,例如: ```css @keyframes myanimation { 0% { transform: translateX(0); } 50% { transform: translateX(100px); } 100% { transform: translateX(0); } } .myelement { animation: myanimation 1s ease-in-out infinite; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值