Javascript 使用AJax时未调用验证脚本
我在主页上使用下面的代码,其他页面在两个单选按钮的帮助下使用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
<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调用后检查表单元素是否存在