Есть ли цифровая клавиатура для jQuery Mobile? - PullRequest
1 голос
/ 23 декабря 2011

У меня есть периферийное устройство для iPad, которое должно установить фокус на числовое поле, чтобы позволить пользователю ввести количество.

Моя проблема: Когда мой JavaScript устанавливает фокус на поле,клавиатура не выдвигается.

Одним из возможных решений было бы просто бросить 10 кнопок на экране, но перед тем, как я это сделаю, я подумал, что хочу спросить сообщество, если клавиатура с хорошим стилем уже сделанав мобильном jQuery.

Ответы [ 2 ]

3 голосов
/ 16 февраля 2012

Обновлено: JSFiddle с примером.(Я не автор)

Вот достойная пользовательская клавиатура jQuery для проверки: Простая клавиатура jQuery

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">&nbsp;</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());
      }
    }
  });
});
3 голосов
/ 24 декабря 2011

Попробуйте установить тип ввода:

  • type = "email"
  • type = "url"
  • type = "tel"

Или (См .: Текст, Интернет и Руководство по программированию для iOS )

<input type="text" pattern="\d*"></input>
...