Link to home
Start Free TrialLog in
Avatar of SiobhanElara
SiobhanElaraFlag for United States of America

asked on

How do I serialize data in a button's surrounding form?

I have a simple form:
<div id="notify-alert"></div>
<form method="post">
<input type="hidden" name="memberID" value="5">
<input type="hidden" name="requestID" value="23">
<input type="button" name="submitNotify" value="Notify" onclick="SubmitNotification();">
</form>

Open in new window


the SubmitNotification function is as follows:
function SubmitNotification(){
	//these next four lines were to check what was going on
	var thisData = $(this).closest('form').serialize(); 
	console.log('begin');
	console.log(thisData);
	console.log('end');
	$.ajax({
		type: "POST",
		url: "ajax-notify.cfm",
		data: $(this).closest('form').serialize(),
		dataType: "text",
		success: function(data, status) {
			$('#notify-alert').html(data);
		},
		error: function(data, status) {
			$('#notify-alert').html(data);
		}
	});
};

Open in new window


$(this).closest('form').serialize(); is just returning an empty string. I've found several questions about how to serialize the surrounding form of a button and this appears to be to the correct way... where is this going awry? (I've also tried $(this).parent('form') with the same issue. Incidentally, I'm not using an ID for this because there are multiple forms on the page created by a loop.) Thanks!
ASKER CERTIFIED SOLUTION
Avatar of Jim Riddles
Jim Riddles
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of SiobhanElara

ASKER

Perfect, thank you!