Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为多输入框使用虚拟键盘?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何为多输入框使用虚拟键盘?

Javascript 如何为多输入框使用虚拟键盘?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,大家早上好 我有个问题,它坏了。只需检查我的代码中有什么错误 请给我一些建议如何修理它。我如何使用我的代码,以便找到结果 请建议一种方法,以便尽快做出正确的决定。当鼠标单击输入框时,如何传递id。我的代码对吗?我在某个地方犯了错误 另一页上的一些代码 var $write = (function(){ var write = write(); write.init("keyboard"); //first input focus

大家早上好

我有个问题,它坏了。只需检查我的代码中有什么错误

请给我一些建议如何修理它。我如何使用我的代码,以便找到结果

请建议一种方法,以便尽快做出正确的决定。当鼠标单击输入框时,如何传递id。我的代码对吗?我在某个地方犯了错误

另一页上的一些代码

var $write = (function(){
         var write = write();
         write.init("keyboard");
         //first input focus
         var $firstInput = $(':input').first().focus();
         write.currentElement = $firstInput;
         write.currentElementCursorPosition = $('#'+id);
     });
$function{ $':input'。单击,函数{ var id=this.id; var$write=id, shift=false, capslock=false; $“键盘li”。单击功能{ var$this=$this, character=$this.html;//如果是小写字母,则此变量不会发生任何变化 //换档键 如果$this.hasClass'left-shift'| |$this.hasClass'right-shift'{ $'.letter'.toggleClass'uppercase'; $'.symbol span'.切换; shift=shift==true?false:true; capslock=false; 返回false; } //帽锁 如果$this.hassclass'capslock'{ $'.letter'.toggleClass'uppercase'; capslock=真; 返回false; } //删除 如果$this.hasClass'delete'{ var html=$write.html, txt=html.substr0,html.length-1; $write.htmltxt; $write.autocompletesearch,txt; 返回false; } //删除 //特殊字符 如果$this.hasClass'symbol'字符=$'span:visible',$this.html; 如果$this.hasClass'space'字符=“”; 如果$this.hasClass'tab'字符=\t; 如果$this.hasClass'return'字符=\n; //大写字母 如果$this.hasClass'uppercase'character=character.toUpperCase; //单击键后删除shift。 如果shift==真{ $'.symbol span'.切换; 如果capslock==false$'.letter'.toggleClass'uppercase'; 移位=假; } //console.logDO IT,character; //添加角色 开关$write{ 案例“项目编号1”: $write.val$write.val+字符; $write.htmltxt; $write.autocompletesearch,txt; 打破 案例“项目编号2”: 提醒“您是2号物品”; 打破 案例“项目编号3”: 提醒“您是3号物品”; 打破 //默认值: //警报$write; } }; }; }; 使用下面的代码

Html

javascript

// Add next/previous buttons
var addNav = function(base) {
    base.$el.addClass('current');
    $("body").css('padding-bottom', '250px'); // keep Donate Now button in view
    var inputs = $('input'),
        len = inputs.length - 1,
        indx = inputs.index(base.$el),
        topPadding = 50; // distance from top where the focused input is placed
    // make sure input is in view
    $(window).scrollTop(inputs.eq(indx).offset().top - topPadding);

    // see if nav is already set up
    if (base.$keyboard.find('.ui-keyboard-nav').length) {
        return;
    }

    // add nav window & buttons
    base.$keyboard.append('<div class="ui-keyboard-nav"><button class="prev ui-state-default ui-corner-all">prev</button><button class="next ui-state-default ui-corner-all">next</button></div>');

    base.$keyboard.find('.next').hover(function() {
        $(this).addClass('ui-state-hover');
    }, function() {
        $(this).removeClass('ui-state-hover');
    }).click(function() {
        var n = indx + 1;
        if (n >= len) {
            return;
        }
        base.close(true); // true = auto accept
        // set focus to next input
        inputs.eq(n).focus();
        // make sure input is in view
        $(window).scrollTop(inputs.eq(n).offset().top - topPadding);
    });

    base.$keyboard.find('.prev').hover(function() {
        $(this).addClass('ui-state-hover');
    }, function() {
        $(this).removeClass('ui-state-hover');
    }).click(function() {
        var n = indx - 1;
        if (n < 0) {
            return;
        }
        base.close(true); // true = auto accept
        // set focus to previous input
        inputs.eq(n).focus();
        // make sure input is in view
        $(window).scrollTop(inputs.eq(n).offset().top - topPadding);
    });

}; // end prev/next button code
// Keyboard Layouts
$('.keyboard-normal').keyboard({
    layout: 'qwerty',
    autoAccept: 'true',
    usePreview: false,
    visible: function(e, keyboard, el) {
        addNav(keyboard);
    },
    beforeClose: function(e, keyboard, el, accepted) {
        $('input.current').removeClass('current');
        $("body").css('padding-bottom', '0px');
    }
});

$('.keyboard-zip').keyboard({
    layout: 'custom',
    autoAccept: 'true',
    maxLength: 5,
    customLayout: {
        'default': [
            '7 8 9',
            '4 5 6',
            '1 2 3',
            '0 {bksp}',
            '{accept}'
            ]
    },
    usePreview: false,
    visible: function(e, keyboard, el) {
        addNav(keyboard);
    },
    beforeClose: function(e, keyboard, el, accepted) {
        $('input.current').removeClass('current');
        $("body").css('padding-bottom', '0px');
    }
});

$('.keyboard-num').keyboard({
    layout: 'custom',
    autoAccept: 'true',
    customLayout: {
        'default': [
            '7 8 9',
            '4 5 6',
            '1 2 3',
            '0 {bksp}',
            '{accept}'
            ]
    },
    usePreview: false,
    visible: function(e, keyboard, el) {
        addNav(keyboard);
    },
    beforeClose: function(e, keyboard, el, accepted) {
        $('input.current').removeClass('current');
        $("body").css('padding-bottom', '0px');
    }
});

$('.keyboard-states').keyboard({
    layout: 'custom',
    customLayout: {
        'default': [
            'AL AK AZ AR CA CO CT DE FL GA',
            'HI ID IL IN IA KS KY LA ME MD',
            'MA MI MN MS MO MT NE NV NH NJ',
            'NM NY NC ND OH OK OR PA RI SC',
            'SD TN TX UT VT VA WA WV WI WY',
            '{accept}{clear}'
            ]
    },
    usePreview: false,
    visible: function(e, keyboard, el) {
        addNav(keyboard);
    },
    // prevent entering more than one state
    change: function(e, keyboard, el) {
        var v = keyboard.$el.val();
        if (v.length > 2) {
            keyboard.$el.val(v.slice(-2));
        }
    },
    beforeClose: function(e, keyboard, el, accepted) {
        $('input.current').removeClass('current');
        $("button.ui-keyboard-widekey").removeClass('state-button');
        $("body").css('padding-bottom', '0px');
    }
});

您可以尝试

不起作用的是$write函数中的not save,请检查。当我单击输入框时,我得到了id。但它不能进一步检查我的循环是否正确。问题可能是这一行var$write=id,try:var$write=$+id,让我知道它是否起作用,我可以告诉您为什么,当我使用alert在alert框中写入其给定的[object object}时,它不起作用,它不显示我将光标放在输入框中的位置的id。TypeError:write不是控制台上的函数,我如何将其声明为函数以及它需要什么。id是未定义的。我不想在脚本中添加其他脚本。我的代码中是否可以修改
// Add next/previous buttons
var addNav = function(base) {
    base.$el.addClass('current');
    $("body").css('padding-bottom', '250px'); // keep Donate Now button in view
    var inputs = $('input'),
        len = inputs.length - 1,
        indx = inputs.index(base.$el),
        topPadding = 50; // distance from top where the focused input is placed
    // make sure input is in view
    $(window).scrollTop(inputs.eq(indx).offset().top - topPadding);

    // see if nav is already set up
    if (base.$keyboard.find('.ui-keyboard-nav').length) {
        return;
    }

    // add nav window & buttons
    base.$keyboard.append('<div class="ui-keyboard-nav"><button class="prev ui-state-default ui-corner-all">prev</button><button class="next ui-state-default ui-corner-all">next</button></div>');

    base.$keyboard.find('.next').hover(function() {
        $(this).addClass('ui-state-hover');
    }, function() {
        $(this).removeClass('ui-state-hover');
    }).click(function() {
        var n = indx + 1;
        if (n >= len) {
            return;
        }
        base.close(true); // true = auto accept
        // set focus to next input
        inputs.eq(n).focus();
        // make sure input is in view
        $(window).scrollTop(inputs.eq(n).offset().top - topPadding);
    });

    base.$keyboard.find('.prev').hover(function() {
        $(this).addClass('ui-state-hover');
    }, function() {
        $(this).removeClass('ui-state-hover');
    }).click(function() {
        var n = indx - 1;
        if (n < 0) {
            return;
        }
        base.close(true); // true = auto accept
        // set focus to previous input
        inputs.eq(n).focus();
        // make sure input is in view
        $(window).scrollTop(inputs.eq(n).offset().top - topPadding);
    });

}; // end prev/next button code
// Keyboard Layouts
$('.keyboard-normal').keyboard({
    layout: 'qwerty',
    autoAccept: 'true',
    usePreview: false,
    visible: function(e, keyboard, el) {
        addNav(keyboard);
    },
    beforeClose: function(e, keyboard, el, accepted) {
        $('input.current').removeClass('current');
        $("body").css('padding-bottom', '0px');
    }
});

$('.keyboard-zip').keyboard({
    layout: 'custom',
    autoAccept: 'true',
    maxLength: 5,
    customLayout: {
        'default': [
            '7 8 9',
            '4 5 6',
            '1 2 3',
            '0 {bksp}',
            '{accept}'
            ]
    },
    usePreview: false,
    visible: function(e, keyboard, el) {
        addNav(keyboard);
    },
    beforeClose: function(e, keyboard, el, accepted) {
        $('input.current').removeClass('current');
        $("body").css('padding-bottom', '0px');
    }
});

$('.keyboard-num').keyboard({
    layout: 'custom',
    autoAccept: 'true',
    customLayout: {
        'default': [
            '7 8 9',
            '4 5 6',
            '1 2 3',
            '0 {bksp}',
            '{accept}'
            ]
    },
    usePreview: false,
    visible: function(e, keyboard, el) {
        addNav(keyboard);
    },
    beforeClose: function(e, keyboard, el, accepted) {
        $('input.current').removeClass('current');
        $("body").css('padding-bottom', '0px');
    }
});

$('.keyboard-states').keyboard({
    layout: 'custom',
    customLayout: {
        'default': [
            'AL AK AZ AR CA CO CT DE FL GA',
            'HI ID IL IN IA KS KY LA ME MD',
            'MA MI MN MS MO MT NE NV NH NJ',
            'NM NY NC ND OH OK OR PA RI SC',
            'SD TN TX UT VT VA WA WV WI WY',
            '{accept}{clear}'
            ]
    },
    usePreview: false,
    visible: function(e, keyboard, el) {
        addNav(keyboard);
    },
    // prevent entering more than one state
    change: function(e, keyboard, el) {
        var v = keyboard.$el.val();
        if (v.length > 2) {
            keyboard.$el.val(v.slice(-2));
        }
    },
    beforeClose: function(e, keyboard, el, accepted) {
        $('input.current').removeClass('current');
        $("button.ui-keyboard-widekey").removeClass('state-button');
        $("body").css('padding-bottom', '0px');
    }
});