2011-12-21 147 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

你在调试方面有什么尝试?当你点击逗号时,它的click事件处理程序是否被调用?如果是,那么'instance.attr('maxlength')'返回的值是多少? – dgvid 2011-12-21 17:35:36

回答