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

回答