Title: Checkout.js not refreshing/validating
Last modified: August 22, 2016

---

# Checkout.js not refreshing/validating

 *  Resolved [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * (@nathancoffey)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/)
 * I had issues with an earlier version of jigoshop not auto refreshing the checkout
   page whenever the user changed one of the billing address fields.
 * I figured it out (it was an issue with checkout.js) and it worked fine until 
   this update. Now it doesnt work again.
 * [http://www.strengtheningmarriage.com/checkout/](http://www.strengtheningmarriage.com/checkout/)
 * Please advise quickly!!!
 * This is the code for checkout.js
 *     ```
       jQuery(function($) {
       	"use strict";
       	var updateTimer;
       	var jqxhr;
       	var $valid_checkout = false;
   
       	// Init trigger
       	$('body').on('jigoshop.checkout.init', function(){
       		$('select.country_to_state').trigger('init');
       		update_checkout();
       	});
   
       	function update_checkout(){
       		if(jqxhr) jqxhr.abort();
       		var $payment_method = $('input[name=payment_method]:checked');
       		var $ship_to_billing = $('#shiptobilling-checkbox');
       		var payment_id = $payment_method.attr('id');
       		var method = $('#shipping_method').val();
       		var coupon = $('#coupon_code').val();
       		var payment_method = $payment_method.val();
       		var country = $('#billing_country').val();
       		var state = $('#billing_state').val();
       		var postcode = $('input#billing_postcode').val();
       		var s_country = country;
       		var s_state = state;
       		var s_postcode = postcode;
   
       		if($ship_to_billing.length > 0 && !$ship_to_billing.is(':checked')){
       			s_country = $('#shipping_country').val();
       			s_state = $('#shipping_state').val();
       			s_postcode = $('input#shipping_postcode').val();
       		}
   
       		$('#order_methods, #order_review').block({
       			message: null,
       			overlayCSS: {
       				background: '#fff url(' + jigoshop_params.assets_url + '/assets/images/ajax-loader.gif) no-repeat center',
       				opacity: 0.6
       			}
       		});
   
       		jqxhr = $.ajax({
       			type: 'POST',
       			url: jigoshop_params.ajax_url,
       			data: {
       				action: 'jigoshop_update_order_review',
       				security: jigoshop_params.update_order_review_nonce,
       				shipping_method: method,
       				country: country,
       				state: state,
       				postcode: postcode,
       				s_country: s_country,
       				s_state: s_state,
       				s_postcode: s_postcode,
       				payment_method: payment_method,
       				coupon_code: coupon,
       				post_data: $('form.checkout').serialize()
       			}
       		})
       			.success(function(response){
       				$('#order_methods, #order_review').remove();
       				$('#order_review_heading').after(response);
       				// ensure there is no duplicate #payment from themes
       				$('div#payment:not(:last)').remove();
       				// reset currently selected gateway
       				$('#' + payment_id).attr('checked', true);
       				$payment_method.click();
       			});
   
       		$('body').trigger('jigoshop.update_checkout');
       	}
   
       	function validate_postcode($field){
       		if(jigoshop_params.validate_postcode == 'no'){
       			return true;
       		}
       		var country = $('#'+$field.attr('rel')).val();
       		var pattern = jigoshop_validation.postcodes[country];
       		if(pattern === undefined){
       			return true;
       		}
       		var value = $field.val();
       		// Special case for GB
       		if(country === 'GB'){
       			value = value.replace(' ', '').toLowerCase();
       		}
       		return pattern.test(value);
       	}
   
       	function validate_email($field){
       		var pattern = jigoshop_validation.email;
       		return pattern.test($field.val());
       	}
   
       	function validate_field($field){
       		// ensure fields aren't empty
       		if($field.val() == '' || $field.val() == 'undefined'){
       			return false;
       		}
   
       		if($field.attr('id').indexOf('postcode') !== -1){
       			return validate_postcode($field);
       		}
   
       		if($field.attr('id').indexOf('email') !== -1){
       			return validate_email($field);
       		}
   
       		return true;
       	}
   
       	function set_field_validity(is_valid, $parent){
       		if(!is_valid){
       			$parent.removeClass('jigoshop-validated').addClass('jigoshop-invalid');
       		} else {
       			$parent.removeClass('jigoshop-invalid').addClass('jigoshop-validated');
       		}
       	}
   
       	// handle inline validation of all required checkout fields
       	$('form.checkout').on('blur change', '.input-required', function(){
       		var $this = $(this);
       		var $parent = $this.closest('.form-row');
       		set_field_validity(validate_field($this), $parent);
       	});
   
       	function validate_required(){
       		$('.input-required', $('#customer_details div:not(.hidden)')).each(function(){
       			var $this = $(this);
       			var $parent = $this.closest('.form-row');
       			set_field_validity(validate_field($this), $parent);
       		});
       		if($('.jigoshop-invalid').size() == 0){
       			$valid_checkout = true;
       		}
       	}
   
       	// ensure there is no duplicate #payment from themes
       	$('div#payment:not(:last)').remove();
       	// handle hiding and showing the login form
       	$('form.login').hide();
       	$('a.showlogin').click(function(e){
       		e.preventDefault();
       		$('form.login').slideToggle();
       	});
   
       	// handle hiding and showing the shipping fields
       	$('#shiptobilling-checkbox').change(function(){
       		if($(this).is(':checked')){
       			$('div.shipping-address').slideUp(function(){
       				$(this).addClass('hidden');
       			});
       		} else {
       			$('div.shipping-address').slideDown(function(){
       				$(this).removeClass('hidden');
       			});
       		}
       	}).change();
   
       	// handle clicks on payment methods
       	$('.payment_methods').on('click', '.input-radio', function(){
       		if($('.payment_methods input.input-radio').length > 1){
       			$('div.payment_box').filter(':visible').slideUp(250);
       		}
       		$('div.payment_box.' + $(this).attr('ID')).slideDown(250);
       	});
       	$('input[name=payment_method]:checked').click();
   
       	// handle selections from items requiring an update of totals
       	$(document.body).on('change', '#shipping_method, #coupon_code, #billing_country, #billing_state, #billing_postcode, #shipping_country, #shipping_state, #shipping_postcode, #shiptobilling', function(){
       		clearTimeout(updateTimer);
       		update_checkout();
       		validate_required();
       	});
   
       	var $create_account = $('#create_account'),
       		$account_username = $('#account_username'),
       		$account_password = $('#account_password'),
       		$account_password_2 = $('#account_password_2');
       	// handle account panel 'input-required' for guests allowed or not
       	if(jigoshop_params.option_guest_checkout === 'no'){
       		$create_account.next().append(' <span class="required">*</span>');
       		$account_username.prev().append(' <span class="required">*</span>');
       		$account_password.prev().append(' <span class="required">*</span>');
       		$account_password_2.prev().append(' <span class="required">*</span>');
       		$account_username
       			.addClass('input-required')
       			.closest('.form-row')
       			.removeClass('jigoshop-validated jigoshop-invalid');
       		$account_password
       			.addClass('input-required')
       			.closest('.form-row')
       			.removeClass('jigoshop-validated jigoshop-invalid');
       		$account_password_2
       			.addClass('input-required')
       			.closest('.form-row')
       			.removeClass('jigoshop-validated jigoshop-invalid');
       	} else {
       		$('div.create-account').hide();
       		$create_account.prev().find('span.required').remove();
       		$create_account.change(function(){
       			if(!$(this).is(':checked')){
       				$('div.create-account').slideUp();
       				$account_username
       					.removeClass('input-required')
       					.closest('.form-row')
       					.removeClass('jigoshop-validated jigoshop-invalid');
       				$account_username.prev().find('span.required').remove();
       				$account_password
       					.removeClass('input-required')
       					.closest('.form-row')
       					.removeClass('jigoshop-validated jigoshop-invalid');
       				$account_password.prev().find('span.required').remove();
       				$account_password_2
       					.removeClass('input-required')
       					.closest('.form-row')
       					.removeClass('jigoshop-validated jigoshop-invalid');
       				$account_password_2.prev().find('span.required').remove();
       			} else {
       				$('div.create-account').slideDown();
       				$account_username
       					.addClass('input-required')
       					.closest('.form-row')
       					.removeClass('jigoshop-validated jigoshop-invalid');
       				$account_username.prev().append(' <span class="required">*</span>');
       				$account_password
       					.addClass('input-required')
       					.closest('.form-row')
       					.removeClass('jigoshop-validated jigoshop-invalid');
       				$account_password.prev().append(' <span class="required">*</span>');
       				$account_password_2
       					.addClass('input-required')
       					.closest('.form-row')
       					.removeClass('jigoshop-validated jigoshop-invalid');
       				$account_password_2.prev().append(' <span class="required">*</span>');
       			}
       		}).change();
       	}
   
       	// AJAX Form Submission from 'Place Order' button
       	$('form.checkout').submit(function(){
       		validate_required();
       		var $form = $(this);
   
       		$form.block({
       			message: null,
       			overlayCSS: {
       				background: '#fff url(' + jigoshop_params.assets_url + '/assets/images/ajax-loader.gif) no-repeat center',
       				opacity: 0.6
       			}
       		});
   
       		$.ajax({
       			type: 'POST',
       			url: jigoshop_params.checkout_url,
       			data: $form.serialize(),
       			success: function(code){
       				$('.jigoshop_error, .jigoshop_message').remove();
       				var result = {
       					result: 'error'
       				};
   
       				try {
       					var success = $.parseJSON(code);
       					if (success.result !== 'success') {
       						result.message = success.message;
       					} else {
       						result = success;
       					}
       				}	catch(err) {
       					result.message = code;
       				}
   
       				if(result.result === 'success'){
       					window.location.href = decodeURI(result.redirect);
       					return;
       				}
   
       				$form.prepend(result.message);
       				$form.unblock();
       				$('html, body').animate({
       					scrollTop: ($('form.checkout').offset().top - 150)
       				}, 1000);
       			},
       			dataType: 'html'
       		});
   
       		return false;
       	});
   
       	// Update on page load
       	if(jigoshop_params.is_checkout == 1){
       		$('body').trigger('init_checkout');
       		$('body').trigger('jigoshop.checkout.init');
       	}
       });
       ```
   
 * [https://wordpress.org/plugins/jigoshop/](https://wordpress.org/plugins/jigoshop/)

Viewing 13 replies - 1 through 13 (of 13 total)

 *  [Jigoshop Support – Marcin](https://wordpress.org/support/users/marcin_biegun-jigoshop/)
 * (@marcin_biegun-jigoshop)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613456)
 * Hi,
    can you post your jigoshop system info? are you sure it’s not related to
   other plugins/theme? we’re checking it on our end too.
 *  Plugin Author [Jigoshop Support – Krzysztof](https://wordpress.org/support/users/krzysztofk-1/)
 * (@krzysztofk-1)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613557)
 * I checked your site, and it works as it should.
 *  Thread Starter [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * (@nathancoffey)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613563)
 * It’s been fixed thanks.
 *  Thread Starter [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * (@nathancoffey)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613588)
 * Thats because I had replaced the 1.15.2 version of checkout.js with the 1.15.1
   version, which made it work.
 * I have now replaced the old version of /cart and /checkout with the new version
   so you can see that it does NOT work on either the cart nor the checkout page.
 * 1. [http://www.strengtheningmarriage.com/product/and-they-were-not-ashamed-softcover/](http://www.strengtheningmarriage.com/product/and-they-were-not-ashamed-softcover/)
   
   2. add to cart 1 copy of product 3. change quantity of product – DOES NOT REFRESH
   AND UPDATE PAGE 4. go to checkout 5. add address with country of USA and state
   of Idaho – should refresh and show 6% tax, then change Idaho to Texas and it 
   should refresh and show 0% tax.
 * Can you please advise?
 *     ```
       ### Begin System Info ###
   
       	Multi-site:               No
   
       	SITE_URL:                 http://www.strengtheningmarriage.com
       	HOME_URL:                 http://www.strengtheningmarriage.com
   
       	Jigoshop Version:         1.15.1
       	WordPress Version:        4.0.1
   
       	Platform:                 Windows
       	Browser Name:             Chrome
       	Browser Version:          39.0.2171.95
       	User Agent String:        Mozilla/5.0 (Windows NT 6.1; WOW
                                         64) AppleWebKit/537.36 (KHTML, l
                                         ike Gecko) Chrome/39.0.2171.95 S
                                         afari/537.36
   
       	PHP Version:              5.3.29
       	MySQL Version:            5.1.73
       	Web Server Info:          Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4
   
       	eAccelerator:             Disabled
       	APC:                      Disabled
       	OpCache:                  Disabled
   
       	PHP Memory Limit:         256M
       	PHP Post Max Size:        8MB
       	PHP Upload Max File Size: 2MB
       	PHP Max Input Time:       60
       	PHP Max Input Vars:       1000
       	WordPress Memory Limit:   40MB
   
       	Short Open Tag:           Enabled
       	Allow URL fopen:          Enabled
   
       	WP_DEBUG:                 Disabled
       	WP Table Prefix:          Length: 3 Status: Acceptable
   
       	Show On Front:            posts
       	Page On Front:            0
       	Page For Posts:           0
   
       	Session:                  Enabled
       	Session Name:             PHPSESSID
       	Cookie Path:              /
       	Save Path:                /tmp
       	Use Cookies:              On
       	Use Only Cookies:         On
   
       	DISPLAY ERRORS:           On (1)
       	FSOCKOPEN:                Supported
   
       	ACTIVE PLUGINS:
   
       	AddThis for WordPress: 4.0.1
       	Akismet: 3.0.4
       	Authorize.net PRO Gateway for Jigoshop: 1.0.4
       	Auto ThickBox Plus: 1.9
       	Blubrry PowerPress: 6.0
       	Broken Link Checker: 1.10.4
       	Captcha: 4.0.8
       	Dashboard Commander: 1.0.3
       	Easy Columns: v2.1.3
       	Google Plus Authorship: 2.5
       	Jigoshop: 1.15.1
       	jQuery Updater: 2.1.3
       	Media Library Assistant: 1.95
       	Quick Page/Post Redirect Plugin: 5.0.6
       	Regenerate Thumbnails: 2.2.4
       	SABRE: 1.2.2
       	SEO Ultimate: 7.6.5.1
       	Simple 301 Redirects: 1.06
       	Spectacu.la Discussion: 2.3.1
       	Table Rate Shipping for Jigoshop: 1.0.2
       	Wordpress Ad Widget: 2.7.1
       	WordPress Importer: 0.6.1
       	WP-Mail-SMTP: 0.9.5
       	XYZ WP Social Media Auto Publish: 2.2.6
       	Youtube Channel Gallery: 1.8.7
   
       	CURRENT THEME:
   
       My Journal Theme: 1.0
   
       	### End System Info ###
       ```
   
 * and it has nothing to do with the fact that I am not using the latest WordPress.
   I upgraded and it still didn’t work so since this version of JS is 100% compatible
   with WP 4.0.1 I downgraded again.
 *  Thread Starter [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * (@nathancoffey)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613589)
 * sorry that was the old system settings. ehre are the current JS settings:
 *     ```
       ### Begin System Info ###
   
       	Multi-site:               No
   
       	SITE_URL:                 http://www.strengtheningmarriage.com
       	HOME_URL:                 http://www.strengtheningmarriage.com
   
       	Jigoshop Version:         1.15.2
       	WordPress Version:        4.0.1
   
       	Platform:                 Windows
       	Browser Name:             Chrome
       	Browser Version:          39.0.2171.95
       	User Agent String:        Mozilla/5.0 (Windows NT 6.1; WOW
                                         64) AppleWebKit/537.36 (KHTML, l
                                         ike Gecko) Chrome/39.0.2171.95 S
                                         afari/537.36
   
       	PHP Version:              5.3.29
       	MySQL Version:            5.1.73
       	Web Server Info:          Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4
   
       	eAccelerator:             Disabled
       	APC:                      Disabled
       	OpCache:                  Disabled
   
       	PHP Memory Limit:         256M
       	PHP Post Max Size:        8MB
       	PHP Upload Max File Size: 2MB
       	PHP Max Input Time:       60
       	PHP Max Input Vars:       1000
       	WordPress Memory Limit:   40MB
   
       	Short Open Tag:           Enabled
       	Allow URL fopen:          Enabled
   
       	WP_DEBUG:                 Disabled
       	WP Table Prefix:          Length: 3 Status: Acceptable
   
       	Show On Front:            posts
       	Page On Front:            0
       	Page For Posts:           0
   
       	Session:                  Enabled
       	Session Name:             PHPSESSID
       	Cookie Path:              /
       	Save Path:                /tmp
       	Use Cookies:              On
       	Use Only Cookies:         On
   
       	DISPLAY ERRORS:           On (1)
       	FSOCKOPEN:                Supported
   
       	ACTIVE PLUGINS:
   
       	AddThis for WordPress: 4.0.1
       	Akismet: 3.0.4
       	Authorize.net PRO Gateway for Jigoshop: 1.0.4
       	Auto ThickBox Plus: 1.9
       	Blubrry PowerPress: 6.0
       	Broken Link Checker: 1.10.4
       	Captcha: 4.0.8
       	Dashboard Commander: 1.0.3
       	Easy Columns: v2.1.3
       	Google Plus Authorship: 2.5
       	Jigoshop: 1.15.2
       	jQuery Updater: 2.1.3
       	Media Library Assistant: 1.95
       	Quick Page/Post Redirect Plugin: 5.0.6
       	Regenerate Thumbnails: 2.2.4
       	SABRE: 1.2.2
       	SEO Ultimate: 7.6.5.1
       	Simple 301 Redirects: 1.06
       	Spectacu.la Discussion: 2.3.1
       	Table Rate Shipping for Jigoshop: 1.0.2
       	Wordpress Ad Widget: 2.7.1
       	WordPress Importer: 0.6.1
       	WP-Mail-SMTP: 0.9.5
       	XYZ WP Social Media Auto Publish: 2.2.6
       	Youtube Channel Gallery: 1.8.7
   
       	CURRENT THEME:
   
       My Journal Theme: 1.0
   
       	### End System Info ###
       ```
   
 *  Plugin Author [Jigoshop Support – Krzysztof](https://wordpress.org/support/users/krzysztofk-1/)
 * (@krzysztofk-1)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613594)
 * It looks like there is some JS error. Switch theme to the standard wp theme, 
   i.e. twenty forteen and check this again.
 *  Thread Starter [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * (@nathancoffey)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613595)
 * Yeah the checkout.js file from version 1.15.1 works like a charm, but 1.15.2’
   s version does not. To do the workaround I replace the new version with the old
   but I wanted you to see it so that Jigoshop can fix it in the next update. Also,
   it seems to work fine if I rollback cart.php to version 1.15.1 instead of this
   version.
 * but to answer your question… when i switched to Twenty Fourteen the two pages
   worked fine.
 * So if it is an issue with my theme, then why do the PHP files from version 1.15.1
   work but not with 1.15.2?
 *  Plugin Author [Jigoshop Support – Krzysztof](https://wordpress.org/support/users/krzysztofk-1/)
 * (@krzysztofk-1)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613596)
 * It looks like blockUI.js do not work with your theme. Maybe it is becouse theme
   includes his own jQuery.
 *  Thread Starter [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * (@nathancoffey)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613597)
 * what should I do then?
 *  Thread Starter [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * (@nathancoffey)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613598)
 * Actually, I just took all the code from blockui.js and added it to the beginning
   of checkout.js and now /checkout works!
 * /cart still does not work though. 🙁
 *  Thread Starter [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * (@nathancoffey)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613599)
 * again, 1.15.1 cart.php works fine but 1.15.2 cart.php does not.
 * Can you look into the code and figure out the difference?
 *  Plugin Author [Jigoshop Support – Krzysztof](https://wordpress.org/support/users/krzysztofk-1/)
 * (@krzysztofk-1)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613600)
 * hi can you edit cart.js and checkout.js and replace ‘jQuery(function($){‘ by ‘
   jQuery(document).ready(function($){‘ and check it?
 *  Thread Starter [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * (@nathancoffey)
 * [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613601)
 * Yeah I replaced
 * jQuery(function($){
 * with
 * jQuery(document).ready(function($){
 * in the raw 1.15.2 version of checkout.js and it didn’t refresh the page at all.
 * cart.js does not have that jQuery(function($){ anywhere. Neither does shortcodes/
   cart.php (that is the file that I replaced version 1.15.2 with version 1.15.1
   and it works – brings back the ‘UPDATE CART’ button.

Viewing 13 replies - 1 through 13 (of 13 total)

The topic ‘Checkout.js not refreshing/validating’ is closed to new replies.

 * ![](https://s.w.org/plugins/geopattern-icon/jigoshop_655549.svg)
 * [Jigoshop](https://wordpress.org/plugins/jigoshop/)
 * [Frequently Asked Questions](https://wordpress.org/plugins/jigoshop/#faq)
 * [Support Threads](https://wordpress.org/support/plugin/jigoshop/)
 * [Active Topics](https://wordpress.org/support/plugin/jigoshop/active/)
 * [Unresolved Topics](https://wordpress.org/support/plugin/jigoshop/unresolved/)
 * [Reviews](https://wordpress.org/support/plugin/jigoshop/reviews/)

 * 13 replies
 * 3 participants
 * Last reply from: [nathancoffey](https://wordpress.org/support/users/nathancoffey/)
 * Last activity: [11 years, 5 months ago](https://wordpress.org/support/topic/checkoutjs-not-refreshingvalidating/#post-5613601)
 * Status: resolved