public override object GetSubmittedValue()
        {
            var rawSubmittedData    = HttpContext.Current.Request.Form;
            var isJavaScriptSupport = rawSubmittedData.Get(EPiServer.Forms.Constants.FormWithJavaScriptSupport);

            if (isJavaScriptSupport == "true")
            {
                return(base.GetSubmittedValue());
            }
            string[] addressComponents = rawSubmittedData.GetValues(this.Content.GetElementName());
            if (addressComponents == null || addressComponents.Length < 1)
            {
                return(null);
            }
            // NOTE: submittedValue is an string with format: address_detail | street | city | state | postal_code | country
            AddressInfo addressObj = new AddressInfo()
            {
                address    = addressComponents.Length > 0 ? addressComponents[0] : null,
                street     = addressComponents.Length > 1 ? addressComponents[1] : null,
                city       = addressComponents.Length > 2 ? addressComponents[2] : null,
                state      = addressComponents.Length > 3 ? addressComponents[3] : null,
                postalCode = addressComponents.Length > 4 ? addressComponents[4] : null,
                country    = addressComponents.Length > 5 ? addressComponents[5] : null
            };

            return(addressObj.ToJson());
        }