I have a web page which fill's form data based on some json data sent from a web service. Once the form is ready to be submitted a function is called which takes all the form data turns it into a xml-formatted string then parses the xml so it becomes a valid xml object. This is where the problem happens, once this data is turned into an xml I would like to post this data back to the web service so the database can be updated. However using the $.ajax() function to post this data, neither the success nor error function within are ever called. This lead's me to believe the ajax function is never being called or run. Below are the code snippets:

submit button for form:

HTML Code:
    <input type="submit" name="submitbutton" id="submitbutton" value="Submit" onclick="postData()"/>

postData function:

Code:
    function postData()
    		{
                //gathering all inputs
    			var cb = document.getElementById('paymentList');
    			var selected_cb = cb.options[cb.selectedIndex].text;
    			var pguid = getParameterByName('guid');
    			var xmlString = '<string>' +
    			addField('approver', $('#approver').val()) +
    			addField('companyName', $('#companyName').val()) +
    			addField('emailAddress', $('#emailaddress').val()) +
    			addField('address1', $('#address1').val()) +
    			addField('address2', $('#address2').val()) +
    			addField('city', $('#city').val()) +
    			addField('province', $('#province').val()) +
    			addField('country', $('#country').val()) +
    			addField('postalCode', $('#postalcode').val()) +
    			addField('phoneNumber', $('#phone').val()) +
    			addField('paymentMethod', selected_cb);
    			
                //gathering all table data now
    			xmlString+='<contractData>';
    			$('#table tbody tr:has(img[src="images/checkmark.png"])').each(function() {
    			  xmlString += '<contract>' + addField('vendorPart', $('td:eq(1)', this).text()) +
    					addField('description', $('td:eq(2)', this).text()) +
    					addField('price', $('td:eq(3)', this).text()) +
    					addField('quantity', $('td:eq(4) input', this).val()) + '</contract>';
    			});
    		
    	
    			xmlString += '</contractData></string>';
    			 
    		//hard coded var for purpose of this example, as web service name will be 
    			var properid = 'somedata';
    			
    			xmlDoc = $.parseXML( xmlString );
    			$xml = $( xmlDoc );

                //this function I believe is never run as neither alerts below are posted
    			$.ajax({
                     type: "POST",
                     url: "http://www.webservice.com/service.asmx/sendMeMyData",
                     data: {properdata:properid, xml: $xml},
                     dataType: "text",
                     success: function() {
    					
    					alert("posted");
    				 },
    				 error: function ()
    				 {
    					alert("error");
    				 }
    			});
    			
    		}

addField function (just so you know what it does when it's called in postData()):

Code:
    function addField(name, value) { // Add a single element and value
    		  value = value.replace(/&/g, '&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
    		  return '<' + name + '>' + value + '</' + name + '>';
    	}