Jquery,验证,提交表单到PHP(Ajax问题)

时间:2011-08-14 12:18:34

标签: forms jquery jquery-validate

很早就玩Javascript,Jquery和Validate。

我使用提交按钮onClick方法进行表单提交。

<input class="submit" type="submit" value="Submit" onClick="submitForm()" />

我正在使用提交,以防没有数据或每个字段都经过测试。

逻辑正在运行,但AJAX调用似乎不起作用。我已经将PHP剥离了

<?php

touch('phpTouch.txt');
phpinfo();
sleep(30;)
?>

javascript是

$(document).ready(function () {
    $('#formEnquiry').validate();
});

function submitForm() {
    $('#msgid').append('<h1>Submitting Form (External Routine)</h1>');
    if ($('#formEnquiry').validate().form() ) {
        $("#msgid").append("<h1>(Outside Ready) VALIDATED send to PHP</h1>");
            $.ajax({
            url: "testPHP.php",
            type: "POST",
            data: frmData,
            dataType: "json",
            success: function () {
                alert("SUCCESS:");
            },
            error: function () {
                alert("ERROR: ");
            }
        });
    } else {
        $('#msgid').append('<h1>(Outside Ready) NOT VALIDATED</h1>');
    }
    return false;  // Prevent the default SUBMIT function occurring (is this a fact ??)
};

任何人都可以建议我做错了什么。

由于

1 个答案:

答案 0 :(得分:0)

做这些事

将HTML标记上的 onClick="submitForm()" 更改为onclick="submitForm(event)"
现在像这样更改submitForm函数。

function submitForm(evt) {
    $('#msgid').append('<h1>Submitting Form (External Routine)</h1>');
    if ($('#formEnquiry').valid() ) {
        $("#msgid").append("<h1>(Outside Ready) VALIDATED send to PHP</h1>");
            $.ajax({
            url: "testPHP.php",
            type: "POST",
            data: frmData,
            contentType: "application/json;",
            success: function () {
                alert("SUCCESS:");
            },
            error: function (a, b, c) {
                alert(a.statusText);
            }
        });
    } else {
        $('#msgid').append('<h1>(Outside Ready) NOT VALIDATED</h1>');
    }
    evt.preventDefault();
};

请注意这些事情

  1. 选中.valid()以确定表单有效期
  2. 调用.preventDefault()而不是return false;(更多jQuery-ish)