2012-06-02 4 views
2

У меня есть HTML-формуJQuery проверки, представления с submitHandler

<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'); 
     }, 
}); 

, а также PHP-код usr.php, который не получит $ _POST -variables (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

Каких протоколирования вы сделали? Вы проверили запрос в средствах Firebug/Developer, чтобы узнать, действительно ли данные отправляются? Попробуйте '$ ('# myform'). Serialize()', 'this', возможно, не относится к форме внутри этой функции. –

+0

или использовать '$ (form) .serialize()' –

ответ

4

Я только что проверил источник validate плагин здесь http://jquery.bassistance.de/validate/jquery.validate.js

и зовёт submitHandler как этот

validator.settings.submitHandler.call(validator, validator.currentForm); 

Что означает this будет относиться к validator object не form, поэтому используйте аргумент form, чтобы обратиться к форме и сериализовать ее «S поля как этот

$(form).serialize() 
2

Serialize form не this. так submithandler будет выглядит, как показано ниже ..

submitHandler: function(form) { 
     $.post('usr.php?resetpw', $(form).serialize(), function (data, textStatus) { 
      form.submit(); 
      alert(data.inf); 
     },'json'); 
}, 
+0

спасибо за ответы – iff

0
$("#form_id").trigger('submit'); 

попробовать это

Смежные вопросы