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