Javascript 通过ajax加载页面时的jQuery验证?
我正在通过jQuery加载功能加载页面。Javascript 通过ajax加载页面时的jQuery验证?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在通过jQuery加载功能加载页面。 我的问题是jQuery验证在第一个页面上运行良好,但由于其他页面是通过ajax加载的,所以它不起作用。请在下面找到jsp&js文件。 这是因为使用ajax页面加载时页面源代码不会更改。 我应该使用显示/隐藏功能吗? //Main.jsp <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"
我的问题是jQuery验证在第一个页面上运行良好,但由于其他页面是通过ajax加载的,所以它不起作用。请在下面找到jsp&js文件。
这是因为使用ajax页面加载时页面源代码不会更改。 我应该使用显示/隐藏功能吗?
//Main.jsp
<script
src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"
type="text/javascript"></script>
<script
src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.js"
type="text/javascript"></script>
<script
src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"
type="text/javascript"></script>
<link rel="stylesheet"
href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
<link rel='stylesheet' type='text/css' href='css/styles.css' />
<script type="text/javascript" src="js/main.js"></script>
<script src="Jquery/myscript.js"></script>
</head>
<body>
<div id="top">
<div id='mainMenu'>
<ul>
<li><a id="home"><span>Home</span></a></li>
<li><a href='#'><span>Hot Deals</span></a></li>
<li><a><span id="logPage">Login</span></a></li>
<li><a id="regPage"><span>Register</span></a></li>
<li><a id="usPage"><span>About</span></a></li>
<li class="last"><a id="adminPage"><span>Adminstration</span></a>
</ul>
</div>
<div id="mainPages">
<jsp:include page="Search.jsp"></jsp:include>
</div>
<div id="errors">
<s:actionerror />
<s:actionmessage />
</div>
</div>
</body>
</html>
//main.js
$(document).ready(function() {
$("#logPage").click(function() {
$('#mainPages').empty();
$('#mainPages').load('Index.jsp');
});
$("#regPage").click(function() {
$('#mainPages').empty();
$('#mainPages').load("Register.jsp");
});
$("#usPage").click(function() {
$('#mainPages').empty();
$('#mainPages').load("About.html");
});
$("#home").click(function() {
$('#mainPages').empty();
$('#mainPages').load("Search.jsp");
});
$("#adminPage").click(function() {
$('#mainPages').empty();
$('#mainPages').load("../AdminLogin.jsp");
});
});
//myscript.js
$(document).ready(function() {
$("#myform").validate({
rules : {
email : {
required : true,
email : true
},
password : {
required : true,
minlength : 8
},
},
messages : {
email : {
required : "Please Enter email",
email : "Valid Email Please"
}
}
});
$("#regform").validate({
rules : {
email : {
required : true,
email : true
},
password : {
required : true,
minlength : 8
},
fname : {
required : true,
lettersonly : true
},
lname : {
lettersonly : true
},
mname : {
lettersonly : true
},
geneder : {
required : true
},
city : {
required : true
},
zip : {
required : true,
digits : true,
minlength : 6,
maxlength : 6
},
mobno : {
required : true,
digits : true,
minlength : 10,
maxlength : 10
},
dob : {
required : true
}
},
messages : {
email : {
required : "Please Enter email",
email : "Valid Email Please"
}
}
});
$("#travelDate").datepicker({
defaultDate : '0',
numberOfMonths : 1,
minDate : '0',
maxDate : '1M'
});
$("#searchForm").validate({
rules : {
fromCity : {
required : true,
lettersonly : true,
},
toCity : {
required : true,
lettersonly : true
},
seats : {
required : true,
digits : true,
min : 1,
max : 9,
},
travelDate : {
required : true,
}
},
messages : {
}
});
});
)};
- 登录
- 登记册
- 关于
管理
//main.js
$(文档).ready(函数(){
$(“#日志页”)。单击(函数(){
$(“#主页”).empty();
$('#mainPages').load('Index.jsp');
});
$(“#regPage”)。单击(函数(){
$(“#主页”).empty();
$('#mainPages').load(“Register.jsp”);
});
$(“#usPage”)。单击(函数(){
$(“#主页”).empty();
$('#mainPages').load(“About.html”);
});
$(“#主页”)。单击(函数(){
$(“#主页”).empty();
$('#mainPages').load(“Search.jsp”);
});
$(“#adminPage”)。单击(函数(){
$(“#主页”).empty();
$('#mainPages').load(“../AdminLogin.jsp”);
});
});
//myscript.js
$(文档).ready(函数(){
$(“#myform”)。验证({
规则:{
电邮:{
要求:正确,
电子邮件:真的
},
密码:{
要求:正确,
最小长度:8
},
},
信息:{
电邮:{
必填:“请输入电子邮件”,
电子邮件:“请发送有效电子邮件”
}
}
});
$(“#regform”).validate({
规则:{
电邮:{
要求:正确,
电子邮件:真的
},
密码:{
要求:正确,
最小长度:8
},
fname:{
要求:正确,
信一:真的
},
名称:{
信一:真的
},
mname:{
信一:真的
},
geneder:{
必填项:true
},
城市:{
必填项:true
},
邮编:{
要求:正确,
数字:对,
最小长度:6,
最大长度:6
},
莫布诺:{
要求:正确,
数字:对,
最小长度:10,
最大长度:10
},
出生日期:{
必填项:true
}
},
信息:{
电邮:{
必填:“请输入电子邮件”,
电子邮件:“请发送有效电子邮件”
}
}
});
$(“#travelDate”).datepicker({
defaultDate:“0”,
月数:1,
minDate:'0',
maxDate:'1M'
});
$(“#搜索表单”).validate({
规则:{
来自城市:{
要求:正确,
信一:没错,
},
城市:{
要求:正确,
信一:真的
},
座位:{
要求:正确,
数字:对,
民:1,,
最高:9,
},
旅行日期:{
要求:正确,
}
},
信息:{
}
});
});
)};
试试看
对所有
表单
重复上述操作,您的main.js
很好
尝试以下步骤:
1) 将$(document).ready(function()
更改为myscript.js中的方法lets callfunction validator()
2) 在通过ajax调用加载的所有页面中使用
onload=validator()
。动态加载的元素是否存在需要由$(“#someDynamicElement”).live()而不是$(document).ready()确定。。如果这对你有帮助,我在生成表单时遇到了类似的问题。在每次ajax请求后附加验证所有页面都包含myscript.js?@Sridhar R是所有页面都包含myscript。js@Ahmad你能提供一些链接/参考来在每个ajax请求后附加验证吗?你的ajax响应页面有验证脚本吗?谢谢,我在同一个页面上有很多表单页面如何区分b/w。感谢您的输入,我不想在加载时验证,而是在提交/点击表单时验证。
$(document.body).on('click', 'input[type="submit"]', function(){
var $form = $(this).closest('form');
$form.validate({