jQuery对话框表单提交没有POSTing值

我有一个这样的简单forms:

<input type="hidden" id="uid" value="">
Password : Confirm Password:

Please make sure your password is atleast 8 characters

Password mismatch

我正在使用jquery ui的对话框function来创建这样的对话框,

 $(function(){ $('#dialog').dialog({ title : 'You must change your password', modal : true, closeOnEscape: false, dialogClass: 'no-close', resizable: false, draggable: false, buttons: { 'Change Password' : function() { if ( $('#pass').val().length < 8 || $('#pass').val() == 'dantours') { $('#weak').dialog(); } else if ( $('#pass').val() != $('#conf_pass').val()){ $('#mismatch').dialog(); } else $('#change_pass').submit(); } } }); }); 

但是在change_pass2.php页面上,$ _POST数组为空。 我一直在对着显示器试图解决这个问题。

jQuery对话框将对话框移动到正文的末尾,这在表单范围之外,如此处所述。 所以不会发布任何数据。

你需要这样做:

 $("#dialog").dialog({your options...}).parent().appendTo($("#change_pass")); 

由于无论您将元素放在代码中的哪个位置,对话框都会附加到正文,并且不再是表单的子元素,只需更改html以使表单成为对话框的子级

  

附加到身体的原因是允许定位基于身体