2011-12-21 2 views
0

Я пытаюсь поместить запятую «,» в цифровой клавиатуре javascript. см. код нижеJQuery числовая клавиатура ввода проблема

/*! 
* JQFNumKeypad 
* http://www.jqueryfun.com/ 
*/ 
(function($) { 
    $.fn.JQFNumKeypad = function(options) { 

    // Defaults 
    var defaults = { 
     fadeSpeed: 400, 
     clearText: 'Clear' 
    }; 

    // Extend options 
    var options = $.extend(defaults, options); 

    // Show keypad on document click/Focus First 
    $(document).click(function() {$('.jqfnumkeypad').show();}); 
    $(document).ready(function(){$('input').first().focus();}); 

    // Loop each instance 
    return this.each(function() { 

     // Instance 
     var instance = $(this); 

     // Keypad layout 
     var keypad = '<div id="jqfnumkeypad_' + instance.attr('name') + '" class="jqfnumkeypad"><div class="jqfnumkeypad_keypad"><table width="100%" cellpadding="0" cellspacing="0">'; 
     for(var i = 1; i <= 9; i++) { 
     if((i-1)%3 == 0) keypad += '<tr>'; 
     keypad += '<td class="jqfnumkeypad_digit">' + i + '</td>'; 
     if(i%3 == 0) keypad += '</tr>'; 
     } 
     keypad += '<tr><td class="jqfnumkeypad_digit">0</td><td class="jqfnumkeypad_clear">' + options.clearText + '</td><td class="jqfnumkeypad_coma">,</td></tr></table></div></div>'; 
     $(keypad).insertAfter(instance).css({right: 0, top: instance.position().top}); 

     // Prevent hide on click 
     instance.click(function(e) {e.stopPropagation();}); 

     // Define on focus event 
     instance.focus(function() { 
     $('#jqfnumkeypad_' + instance.attr('name')).css('z-index', '99').fadeIn(options.fadeSpeed, function() { 
      // Digit click 
      $('#jqfnumkeypad_' + instance.attr('name') + ' .jqfnumkeypad_digit').unbind().bind('click', function(e) { 
      if(instance.attr('maxlength') == -1 || instance.val().length < instance.attr('maxlength')) instance.val(instance.val() + parseFloat($(this).html())); 
      e.stopPropagation(); 
      }); 
      // Clear click 
      $('#jqfnumkeypad_' + instance.attr('name') + ' .jqfnumkeypad_clear').unbind().bind('click', function(e) { 
      instance.val(''); 
      e.stopPropagation(); 
      }); 
      // Coma click 
      $('#jqfnumkeypad_' + instance.attr('name') + ' .jqfnumkeypad_coma').unbind().bind('click', function(e) { 
      if(instance.attr('maxlength') == -1 || instance.val().length < instance.attr('maxlength')) instance.val(instance.val() + $(this).html()); 
      e.stopPropagation(); 
      }); 

     }).siblings('div').css('z-index', '0'); 
     // Blur to prevent instance events 
     instance.blur(); 
     }); 
    }); 
    } 
})(jQuery); 

Может ли кто-нибудь помочь мне исправить проблему? В настоящее время, когда вы нажимаете кнопку с запятой, она очищает поле ввода. мне нужна запятая, так как вход требуется на следующий формат европейской валюты

+0

Что вы пробовали с точки зрения отладки? Когда вы нажимаете запятую, является ли обработчик события клика для вызова? Если да, то каково значение, возвращаемое 'instance.attr ('maxlength')'? – dgvid

ответ

0

Почему бы не использовать Маску входа плагин для JQuery на поле ввода: http://digitalbush.com/projects/masked-input-plugin/

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

Смежные вопросы