Merge pull request #5377 from mgmartel/decimal-validation-negative

Fix decimal validation JS in order admin
This commit is contained in:
Mike Jolley 2014-04-25 09:41:58 +01:00
commit fa70e5a8e0
2 changed files with 42 additions and 45 deletions

View File

@ -4,51 +4,48 @@
jQuery(function(){
// Price input validation
jQuery(".wc_input_decimal[type=text], .wc_input_price[type=text]")
.bind( 'blur', function() {
jQuery('body').on( 'blur', '.wc_input_decimal[type=text], .wc_input_price[type=text]', function() {
jQuery('.wc_error_tip').fadeOut('100', function(){ jQuery(this).remove(); } );
return this;
});
jQuery(".wc_input_price[type=text]")
.bind( 'keyup change', function() {
var value = jQuery(this).val();
var regex = new RegExp( "[^0-9\%.\\" + woocommerce_admin.mon_decimal_point + "]+", "gi" );
var newvalue = value.replace( regex, '' );
jQuery('body').on('keyup change', '.wc_input_price[type=text]', function(){
var value = jQuery(this).val();
var regex = new RegExp( "[^\-0-9\%.\\" + woocommerce_admin.mon_decimal_point + "]+", "gi" );
var newvalue = value.replace( regex, '' );
if ( value !== newvalue ) {
jQuery(this).val( newvalue );
if ( jQuery(this).parent().find('.wc_error_tip').size() == 0 ) {
var offset = jQuery(this).position();
jQuery(this).after( '<div class="wc_error_tip">' + woocommerce_admin.i18n_mon_decimal_error + '</div>' );
jQuery('.wc_error_tip')
.css('left', offset.left + jQuery(this).width() - ( jQuery(this).width() / 2 ) - ( jQuery('.wc_error_tip').width() / 2 ) )
.css('top', offset.top + jQuery(this).height() )
.fadeIn('100');
}
}
return this;
});
if ( value !== newvalue ) {
jQuery(this).val( newvalue );
if ( jQuery(this).parent().find('.wc_error_tip').size() == 0 ) {
var offset = jQuery(this).position();
jQuery(this).after( '<div class="wc_error_tip">' + woocommerce_admin.i18n_mon_decimal_error + '</div>' );
jQuery('.wc_error_tip')
.css('left', offset.left + jQuery(this).width() - ( jQuery(this).width() / 2 ) - ( jQuery('.wc_error_tip').width() / 2 ) )
.css('top', offset.top + jQuery(this).height() )
.fadeIn('100');
}
}
return this;
});
jQuery(".wc_input_decimal[type=text]")
.bind( 'keyup change', function() {
var value = jQuery(this).val();
var regex = new RegExp( "[^0-9\%.\\" + woocommerce_admin.decimal_point + "]+", "gi" );
var newvalue = value.replace( regex, '' );
jQuery('body').on('keyup change', '.wc_input_decimal[type=text]', function(){
var value = jQuery(this).val();
var regex = new RegExp( "[^\-0-9\%.\\" + woocommerce_admin.decimal_point + "]+", "gi" );
var newvalue = value.replace( regex, '' );
if ( value !== newvalue ) {
jQuery(this).val( newvalue );
if ( jQuery(this).parent().find('.wc_error_tip').size() == 0 ) {
var offset = jQuery(this).position();
jQuery(this).after( '<div class="wc_error_tip">' + woocommerce_admin.i18n_decimal_error + '</div>' );
jQuery('.wc_error_tip')
.css('left', offset.left + jQuery(this).width() - ( jQuery(this).width() / 2 ) - ( jQuery('.wc_error_tip').width() / 2 ) )
.css('top', offset.top + jQuery(this).height() )
.fadeIn('100');
}
}
return this;
});
if ( value !== newvalue ) {
jQuery(this).val( newvalue );
if ( jQuery(this).parent().find('.wc_error_tip').size() == 0 ) {
var offset = jQuery(this).position();
jQuery(this).after( '<div class="wc_error_tip">' + woocommerce_admin.i18n_decimal_error + '</div>' );
jQuery('.wc_error_tip')
.css('left', offset.left + jQuery(this).width() - ( jQuery(this).width() / 2 ) - ( jQuery('.wc_error_tip').width() / 2 ) )
.css('top', offset.top + jQuery(this).height() )
.fadeIn('100');
}
}
return this;
});
jQuery("body").click(function(){
jQuery('.wc_error_tip').fadeOut('100', function(){ jQuery(this).remove(); } );
@ -56,11 +53,11 @@ jQuery(function(){
// Tooltips
jQuery(".tips, .help_tip").tipTip({
'attribute' : 'data-tip',
'fadeIn' : 50,
'fadeOut' : 50,
'delay' : 200
});
'attribute' : 'data-tip',
'fadeIn' : 50,
'fadeOut' : 50,
'delay' : 200
});
// wc_input_table tables
jQuery('.wc_input_table.sortable tbody').sortable({
@ -144,7 +141,7 @@ jQuery(function(){
jQuery( '.woocommerce_page_wc-settings .shippingrows tbody tr:even' ).addClass( 'alternate' );
// Availability inputs
jQuery('select.availability').change(function(){
jQuery('select.availability').change(function(){
if ( jQuery(this).val() == "all" ) {
jQuery(this).closest('tr').next('tr').hide();
} else {

File diff suppressed because one or more lines are too long