jQuery serialize()为空 [英] Jquery serialize() is empty

查看:42
本文介绍了jQuery serialize()为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个联系表,可以通过AJAX将数据发送到PHP脚本.这很基本,但是我无法通过序列化获得输入值.表格ID是正确的,我获得输入名称,但没有获得它们的值.这是我的代码.谢谢!

I've a contact form that sends data to a PHP script via AJAX. It's pretty basic but I can't get input values with serialize. The form id is correct, i obtain the input name but not their values. Here's my code. Thanks !

	//Contact form AJAX
    var form = $('#contact-form');
    var formMessages = $('#form-messages');
    // Serialize the form data.
	var formData = $(form).serialize();
	console.log($(form).serialize());
    // Set up an event listener for the contact form.
	$(form).submit(function(event) {
	    // Stop the browser from submitting the form.
	    event.preventDefault();
		// Submit the form using AJAX.
		$.ajax({
			type: 'POST',
			url: $(form).attr('action'),
			data: formData
		})
		.done(function(response) {
			// Make sure that the formMessages div has the 'success' class.
			$(formMessages).hide().fadeIn();
			$(formMessages).removeClass('error');
			$(formMessages).addClass('success');

			// Set the message text.
			$(formMessages).text(response);

			// Clear the form.
			$('#form_name').val('');
			$('#form_email').val('');
			$('#form_message').val('');
		})
		.fail(function(data) {
			// Make sure that the formMessages div has the 'error' class.
			$(formMessages).hide().fadeIn();
			$(formMessages).removeClass('success');
			$(formMessages).addClass('error');

			// Set the message text.
			if (data.responseText !== '') {
				$(formMessages).text(data.responseText);
			} else {
				$(formMessages).text("Something went wrong.");
			}
		});
	});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="contact-form" class="col-md-12" method="post">
                        <h1>Contact</h1>
                        <fieldset class="form-group">
                            <input type="text" id="form_name" name="form_name" class="form-control" placeholder="Your name">
                        </fieldset>
                        <fieldset class="form-group">
                            <input type="email" id="form_email" name="form_email" class="form-control" placeholder="Your email" required>
                        </fieldset>
                            <fieldset class="form-group">
                        <textarea class="form-control" id="form_message" name="form_message" rows="3" placeholder="Your message" required></textarea>
                        </fieldset>
                        <button type="submit" class="btn btn-primary">Send</button>                     
                    </form>


https://jsfiddle.net/huja5pru/2/

推荐答案

Use serialize() method when form is submit.

check this fiddle https://jsfiddle.net/6o6htoh1/1/

这篇关于jQuery serialize()为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆