我有一个HTML表单
<form method="POST" action="" name="myform" id="myform">
<input type="text" name="email" id="email" />
<input type="supmit" name="submit" id="submit" value="submit" />
</form>
jQuery的代码:
$(document).ready(function(){
var validator = $("#myform").validate({
ignore: ".ignore",
rules: {...},
messages: {...},
submitHandler: function(form) {
$.post('usr.php?resetpw', $(this).serialize(), function (data, textStatus) {
form.submit();
alert(data.inf);
},'json');
},
});
以及没有得到$ _POST变量的PHP代码usr.php(isset($_POST['email'])
= false
)
if(isset($_GET['resetpw'])) {
$loggingData = array(
'inf' => utf8_encode("Your email address is: ".$_POST['email']),
'errorEmail' => '',
'mailExists' => '',
'success' => '',
);
}
echo json_encode($loggingData);
什么是将变量发布到PHP的正确代码?
谢谢
答案 0 :(得分:4)
我刚刚从http://jquery.bassistance.de/validate/jquery.validate.js
检查了validate
插件的来源
它正在调用submitHandler
这样的
validator.settings.submitHandler.call( validator, validator.currentForm );
这意味着this
将引用validator object
而非form
,因此请使用form
参数来引用表单并序列化它的字段
$(form).serialize()
答案 1 :(得分:2)
序列化form
而非this
。
所以submithandler看起来像下面..
submitHandler: function(form) {
$.post('usr.php?resetpw', $(form).serialize(), function (data, textStatus) {
form.submit();
alert(data.inf);
},'json');
},
答案 2 :(得分:0)
$("#form_id").trigger('submit');
试试这个