我有iPad的外围设备需要将焦点设置在数字字段上,以允许用户输入数量。
我的问题是:当我的JavaScript将焦点设置在字段上时,键盘不会向上滑动。
一个可能的解决方案是在屏幕上抛出10个按钮,但在我这样做之前,我想我会问社区是否已经在jQuery mobile中完成了一个风格漂亮的键盘。
答案 0 :(得分:3)
尝试将输入类型设置为:
或(参考:Text, Web, and Editing Programming Guide for iOS)
<input type="text" pattern="\d*"></input>
答案 1 :(得分:3)
更新: JSFiddle的一个例子。 (我不是作者)
这是一个体面的自定义jQuery键盘,可以查看:Simple jQuery Keypad
HTML:
<input style="background: white; color: black;" type="text" readonly="readonly" id="myInput"/>
<table class="ui-bar-a" id="n_keypad" style="display: none; -khtml-user-select: none;">
<tr>
<td><a data-role="button" data-theme="b" class="numero">7</a></td>
<td><a data-role="button" data-theme="b" class="numero">8</a></td>
<td><a data-role="button" data-theme="b" class="numero">9</a></td>
<td><a data-role="button" data-theme="e" class="del">Del</a></td>
</tr>
<tr>
<td><a data-role="button" data-theme="b" class="numero">4</a></td>
<td><a data-role="button" data-theme="b" class="numero">5</a></td>
<td><a data-role="button" data-theme="b" class="numero">6</a></td>
<td><a data-role="button" data-theme="e" class="clear">Clear</a></td>
</tr>
<tr>
<td><a data-role="button" data-theme="b" class="numero">1</a></td>
<td><a data-role="button" data-theme="b" class="numero">2</a></td>
<td><a data-role="button" data-theme="b" class="numero">3</a></td>
<td><a data-role="button" data-theme="e"> </a></td>
</tr>
<tr>
<td><a data-role="button" data-theme="e" class="neg">-</a></td>
<td><a data-role="button" data-theme="b" class="zero">0</a></td>
<td><a data-role="button" data-theme="e" class="pos">+</a></td>
<td><a data-role="button" data-theme="e" class="done">Done</a></td>
</tr>
</table>
JS:
$(document).ready(function(){
$('#myInput').click(function(){
$('#n_keypad').fadeToggle('fast');
});
$('.done').click(function(){
$('#n_keypad').hide('fast');
});
$('.numero').click(function(){
if (!isNaN($('#myInput').val())) {
if (parseInt($('#myInput').val()) == 0) {
$('#myInput').val($(this).text());
} else {
$('#myInput').val($('#myInput').val() + $(this).text());
}
}
});
$('.neg').click(function(){
if (!isNaN($('#myInput').val()) && $('#myInput').val().length > 0) {
if (parseInt($('#myInput').val()) > 0) {
$('#myInput').val(parseInt($('#myInput').val()) - 1);
}
}
});
$('.pos').click(function(){
if (!isNaN($('#myInput').val()) && $('#myInput').val().length > 0) {
$('#myInput').val(parseInt($('#myInput').val()) + 1);
}
});
$('.del').click(function(){
$('#myInput').val($('#myInput').val().substring(0,$('#myInput').val().length - 1));
});
$('.clear').click(function(){
$('#myInput').val('');
});
$('.zero').click(function(){
if (!isNaN($('#myInput').val())) {
if (parseInt($('#myInput').val()) != 0) {
$('#myInput').val($('#myInput').val() + $(this).text());
}
}
});
});