jQuery表单序列化 – 只返回一个空字符串
我没有从序列化我的html表单中获取任何数据。 这是表格
这是jquery
jQuery(document).ready(function(){ $("#basicForm").validate({ submitHandler: function (form) { var request; var $form = $(this); var $inputs = $form.find("input, select, button, textarea"); var serializedData = $form.serialize(); alert (serializedData); <==empty $inputs.prop("disabled", true); request = $.ajax({ url: "./ajax/login.php", type: "post", data: serializedData }); request.done(function (response, textStatus, jqXHR) { // log a message to the console console.log("Hooray, it worked!"); alert(response); //window.location.replace("success.php"); }); } }); //validate });//ready
表单中的数据未序列化。 我得到一个空警报框。 同样在ajax页面上我回发到i print_r $ _post数组并得到:Array()
我已经检查了表单元素的名称,这似乎是常见的问题。 我正在使用这个jquery版本
validation工作正常。 这也有效
var x = $("#id_username").val(); var y = $("#id_password").val(); request = $.ajax({ url: "./ajax/login.php", type: "post", //data: serializedData data : { username : x, password: y }
提前感谢您提供的任何帮助
你在这里打破它……
submitHandler: function (form) { ... var $form = $(this); // <- '$(this)' is meaningless ... var serializedData = $form.serialize(); ...
在此上下文中没有$(this)
,因此$form
是空的。
由于表示对象的form
参数已由开发人员提供,因此该版本工作正常...
submitHandler: function (form) { var serializedData = $(form).serialize(); ...
工作演示: http : //jsfiddle.net/gpaf8187/
注意 :您还需要在元素中使用
type="submit"
,否则validation插件将不会选择此事件。