添加jquery键盘后,jquery按钮单击事件不起作用

Posted

技术标签:

【中文标题】添加jquery键盘后,jquery按钮单击事件不起作用【英文标题】:Jquery button click event not working after adding jquery keyboard 【发布时间】:2015-04-24 08:09:35 【问题描述】:

我尝试使用 jquery keyboard.js 从文本框中获取用户输入。如果我省略虚拟键盘代码,它的工作正常。

网址:https://github.com/Mottie/Keyboard/wiki

这是我的文本框和按钮:

<input type="text" name="pnr" id="txtpnr" required class="form-control" placeholder="Enter PNR Number" maxlength="10">
<button type="button" name="btnCheckpnr" id="btnCheckpnr" class="btn btn-block btn-default">Get current status</button>

我将头文件包含为:

<script type="text/javascript" src="js/jquery-1.11.2.js"></script>
    <script type="text/javascript" src="js/bootstrap.js"></script>
    <link href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet">
    <script src="http://code.jquery.com/ui/1.9.0/jquery-ui.min.js"></script>
    <script type="text/javascript" src="js/jquery.keyboard.js"></script>
    <script type="text/javascript" src="js/jquery.mousewheel.js"></script>

虚拟键盘的 JavaScript 代码:

$('#txtpnr').keyboard(
        layout: 'custom',
        customLayout: 
            'default' : [
                '8 9 a c',
                '4 5 6 7',
                '0 1 2 3',
                'bksp'
            ]
        ,
        maxLength : 10,
        restrictInput : true, 
        useCombos : false,
        acceptValid: true,
        validate: function(keyboard, value, isClosing)
            return value.length === 10;
        
    ).addTyping();

我用于按钮的代码:

$('#btnCheckpnr').on('click',function()

        $('#flag-0').hide();
        $('#flag-1').hide();
        $('#flag-2').hide();

        if($('#txtpnr').val() == '' || $('#txtpnr').val().length < 10)

            $(".help-block").show().delay(5000).fadeOut();
            $('#txtpnr').focus();

        else

            $('#big-loading').show();
            $("*[name^='flag']").hide();
            $('#pnr-info').hide();

            $.ajax(
                'method':'POST',
                'url':'backEnd/jsonProcess.php',
                'data':'pnrno='+$('#txtpnr').val()+'&RequestType=checkpnr',
                success: function(getPnrStatus)

                    $('#big-loading').hide();

                    if(getPnrStatus == '0')
                        $('#flag-0').show();
                    
                    else if(getPnrStatus == '1')
                        $('#flag-1').show();
                    
                    else if(getPnrStatus == '2')
                        $('#flag-2').show();
                    
                    else if(getPnrStatus == '')
                        $('#flag-2').show();
                    else
                        $('#pnr-info').show();
                        var pnrinfo = getPnrStatus.split('#');

                        $('.pnr').empty().html(pnrinfo[0]);
                        $('.journy').empty().html(pnrinfo[1]);
                        $('.trainname').empty().html(pnrinfo[2]);
                        $('.trainno').empty().html(pnrinfo[3]);
                        $('.class').empty().html(pnrinfo[4]);
                        $('.brdfrom').empty().html(pnrinfo[5]);
                        $('.bkpoint').empty().html(pnrinfo[6]);
                        $('.brdto').empty().html(pnrinfo[7]);
                        $('.chartinfo').empty().html(pnrinfo[8]);
                        $('#passenger-info tbody').empty().html(pnrinfo[9]);
                    

                
            );
        
    );

通过虚拟键盘添加值后,按钮单击事件不起作用。 我该如何解决这个问题?我已经使用 bootstrap 3 css 框架。

【问题讨论】:

Javascript 控制台有错误吗?我认为虚拟键盘不太可能会更改无关输入元素上的任何内容,因此最可能的问题是您在添加对.keyboard 的调用时出现语法错误。 你能做一个 jsfiddle 来演示这个问题吗? console : Uncaught TypeError: $(...).keyboard(...).addTyping is not a function 这里是另一个项目链接:jqueryscript.net/other/… 缺少此脚本。 addTyping() 是其中的一部分。 【参考方案1】:
<script src="js/jquery.keyboard.extension-typing.js"></script> 

此脚本丢失。

addTyping() 是其中的一部分。

【讨论】:

以上是关于添加jquery键盘后,jquery按钮单击事件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jquery监控键盘(回车执行按钮单击事件)

通过数据表jQuery插件添加的按钮上的jQuery单击事件

ASP.NET MVC 应用程序:添加了 jQuery 事件来提交按钮单击,现在 jQuery Validate 插件不再工作。

Jquery按钮单击事件不起作用

jquery键盘事件及keycode大全

jquery向元素添加点击事件