【问题标题】:jQuery validate, submitting with submitHandlerjQuery 验证,使用 submitHandler 提交
【发布时间】:2012-06-02 10:42:13
【问题描述】:

我有一个 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 的正确代码是什么?

谢谢

【问题讨论】:

  • 你做过什么样的日志记录?您是否检查过 Firebug/Developer 工具中的请求以查看数据是否真正被发送?试试$('#myform').serialize()this 可能不是指该函数内的表单。

标签: php javascript jquery html jquery-validate


【解决方案1】:

我刚刚从这里http://jquery.bassistance.de/validate/jquery.validate.js检查了validate插件的来源

它像这样调用submitHandler

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

这意味着this 将引用validator object 而不是form,所以使用form 参数来引用表单并像这样序列化它的字段

 $(form).serialize()

【讨论】:

    【解决方案2】:

    序列化 form 而不是 this 。 所以 submithandler 将如下所示..

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

    【讨论】:

      【解决方案3】:
      $("#form_id").trigger('submit');
      

      试试这个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-08
        • 1970-01-01
        • 1970-01-01
        • 2017-10-23
        相关资源
        最近更新 更多