Javascript 使用AJax时未调用验证脚本

Javascript 使用AJax时未调用验证脚本,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在主页上使用下面的代码,其他页面在两个单选按钮的帮助下使用ajax加载 <script> function loadXMLDoc(str) { var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new

我在主页上使用下面的代码,其他页面在两个单选按钮的帮助下使用ajax加载

<script>
function loadXMLDoc(str)
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
  if(str=="Candidate")
  {
     xmlhttp.open("GET","creg.php",true);       
  }
  else if(str=="Employer")
  {     
     xmlhttp.open("GET","Empyr.php",true);
  }

xmlhttp.send();
}
</script>

函数loadXMLDoc(str)
{
var-xmlhttp;
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;
}
}
如果(str==“候选人”)
{
open(“GET”,“creg.php”,true);
}
否则,如果(str==“雇主”)
{     
open(“GET”,“Empyr.php”,true);
}
xmlhttp.send();
}
下面的脚本是为表单验证而编写的(写在主页的末尾),此脚本仅在第一次加载主页时有效,但在使用ajax第二次加载表单时,此脚本不起作用

<script>
$.validate({
  form : '#cand, #employerRegister'
})
; 
</script>

美元。验证({
表格:“#cand,#雇主登记员”
})
; 

正如我所知,在页面加载时脚本会被读取,但现在我应该在哪里编写脚本,以便在使用ajax加载表单时它能够正常工作,哪里出了问题?

您使用的是验证引擎吗?我不喜欢用纯javascript进行ajax调用,因为它看起来很凌乱

jQuery(document).ready(function($) {
$('#registration').validate({

        rules:{

            email: {
                    email: true
                },
            password : {
                minlength : 6
            },
            repassword : {
                minlength : 6,
                equalTo : "#password"
            }

        },


        submitHandler: function(form) {
    // do other things for a valid form

        var post = {};

        form_data = $(form).serialize();
        //console.log(form_data);
        //console.log(book_form);

        if(post)
        {
              $.post(site_url+'/members/register',form_data,
                   function(response){  
                        var res1 = $.parseJSON(response);
                        console.log(res1);
                        if(res1.success == true )
                        {
                                $('.success_message').html('You are successfully registered ').show();
                                window.location.href = site_url+'/pages/registerstep';

                                clear_form(form);
                        }
                        else
                        {
                            $('.error_message').html(res1.success).show();
                            //clear_form(form);
                        }

                   }

            ); 
        }
    }
  });
}))


用这样的东西。这会奏效的。首次加载后代码无法工作的原因是,表单提交时未触发验证。在将新元素插入DOM后,需要再次运行代码以绑定事件处理程序。最好使用跨平台javascript框架,如

您需要再次从ajax响应调用下面的javascript

<script>
$.validate({
  form : '#cand, #employerRegister'
})
; 
</script>

美元。验证({
表格:“#cand,#雇主登记员”
})
; 

检查

函数applyScript(){alert(“2”);$.validate({form:'cand,#employerRegister'}}
是这样做的,
警报2
被解雇了,但是validate不工作,有什么错误吗请建议这样做,还没有工作,
函数applyScript(){alert(“2”)$(document).准备(函数(){$.validate({form:'#cand,#employerRegister'}})}
使用formelement.lengthCheck document.getElementById(“cand”).length在ajax调用后检查表单元素是否存在