Jquery数字键盘输入问题

时间:2011-12-21 17:25:31

标签: jquery

我正在尝试在javascript数字小键盘中输入逗号“,”。见下面的代码

 /*!
* 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);

任何人都可以帮我解决这个问题吗? 当前按下逗号按钮时,它会清除输入字段。 我需要逗号,因为所需的输入是按照欧洲货币格式

1 个答案:

答案 0 :(得分:0)

为什么不在输入字段上使用jQuery的Masked Input插件:http://digitalbush.com/projects/masked-input-plugin/

这样您就不必让用户输入,,您仍然可以获得所需的格式。