jQuery使用Ajax提交表单进行验证

时间:2011-08-03 12:51:29

标签: jquery ajax

我的验证工作在常规PHP表单上,但在这个Ajax表单上,它只会在某些时候工作。通常在单击提交按钮一次后,验证将不再次再次运行。我觉得我需要将验证与Aj​​ax绑定,但我不确定如何继续。

<script type="text/javascript">
    var J = jQuery.noConflict();
    J(document).ready(function(){
    // Validate signup form on keyup and submit
    J("#professorform").validate({
        rules: {
            "professor":
            {
                required: true,
                format: true},
            },
    });
});
</script>

<script type="text/javascript">
    function addProf(str)
    {
        if (str=="")
        {
            document.getElementById("prof").innerHTML="";
            return;
        }
        if (window.XMLHttpRequest)
        { // Code for Internet Explorer 7 and later, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        }
        else
        { // Code for Internet Explorer 6 and Internet Explorer 5.
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open("POST","test.php",true);

        var params = "professor=" + encodeURI(document.getElementById("professor").value);

        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.setRequestHeader("Content-length", params.length);
        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("prof").innerHTML=xmlhttp.responseText;
            }
        }
        xmlhttp.send(params);
    }
</script>

1 个答案:

答案 0 :(得分:0)

我不确定这会解决您的问题,但您可以使用jQuery AJAX命令替换所有AJAX设置和回调。请在此处查看:http://api.jquery.com/jQuery.ajax/ 它会更清晰,写起来也容易得多。