jQuery Validation Plugin:相同的表单,不同的验证submitHandler

时间:2013-10-07 13:19:58

标签: javascript jquery validation

我在两种不同的场景中使用单一表格 - 创建和编辑。

我喜欢

<?php
if($status == 'new')
    echo '<button id="btnSubmit" type="submit" class="btn">Submit!</button>';
else
    echo '<button id="btnEdit" type="submit" class="btn">Edit!</button>';
?>

我想在javascript端实现的是验证表单并根据按下的按钮调用正确的Web服务。我正在使用here找到的jQuery Validation Plugin。

的Javascript

$('#myForm').validate({
    submitHandler: function(data) {
      $.ajax({
        url: "service1.php"
        ...... other AJAX stuff ..........
      });
    }
}

$('#btnSubmit').click(function() {
    // call service1.php
});

$('#btnEdit').click(function() {
    // call service2.php
});

2 个答案:

答案 0 :(得分:0)

验证方法可以是单一功能,您可以设置标记(例如,您将在编辑页面中获取ID)以识别编辑页面或添加页面。这样您就可以检查提交处理程序中的标志并将表单提交到需要提交的位置。我不熟悉PHP,我希望这对你有帮助。

答案 1 :(得分:0)

根据Marikkani的建议,我已实施以下内容并且有效。希望它可以帮助使用Javascript和PHP的类似问题的人。

在我的表单文件中,我使用隐藏的div来存储type (new or edit)<input type="hidden" id="type" value="<?php echo $type; ?>" />

此后,在我的javascript文件中,我检索此值并在调用相应的ajax之前检查。

$('#resForm').validate({
    submitHandler: function(form) {
        var type = $('#type').val();

        if(type == 'new') {
            $.ajax({
                url: "service1.php"
                .... other AJAX stuff
            });
        } else { // type is edit
            $.ajax({
                url: "service2.php"
                .... other AJAX stuff
            });
        }
    }
});