Jsp jQuery自定义验证-添加错误对象
下面的函数工作得非常好。目前,如果用户名不可用,我会向已注册的邮件电子邮件ID发出警报-请登录 我的查询是,我是否可以将上述消息添加到validation error对象中,以便由默认的errorPlacement函数选择它,然后在jsp上显示错误消息,这与其他validation failuer通常的方式相同Jsp jQuery自定义验证-添加错误对象,jsp,jquery,jquery-plugins,Jsp,Jquery,Jquery Plugins,下面的函数工作得非常好。目前,如果用户名不可用,我会向已注册的邮件电子邮件ID发出警报-请登录 我的查询是,我是否可以将上述消息添加到validation error对象中,以便由默认的errorPlacement函数选择它,然后在jsp上显示错误消息,这与其他validation failuer通常的方式相同 <script type="text/javascript"> $(document).ready(function(){ var fo
<script type="text/javascript">
$(document).ready(function(){
var formAction = '';
var userAvailable = '';
$("#myForm").validate({
onfocusout:false,
onkeyup:false,
onclick:false,
rules:{
j_username:{
required: true,
email: true,
minlength: 8
}
},
messages: {
j_username:{
required: "Please enter a valid email address",
minlength: "Please enter a valid email address"
}
},
// the errorPlacement has to take the table layout into account
errorPlacement: function(error, element) {
if(element.is(":radio") )
error.appendTo( element.parent().next());
else
error.appendTo( element.parent());
},
submitHandler: function(form){
if($('#accountNo').is(':checked')){
var emailId = $('#userName').val();
isUserNameAvailable(emailId);
if(userAvailable=="1"){
alert("Email ID already registered - please log in");
return false;
}
var loginAction = '/MyApp/articles/add.html';
$('#myForm').attr('method','POST');
$('#myForm').attr('action',loginAction);
form.submit();
}
else{
var loginAction = '/MyApp/j_spring_security_check';
$('#myForm').attr('method','POST');
$('#myForm').attr('action',loginAction);
form.submit();
}
}
});
//Ajax call to check userName availability returns '1' if userName is available
function isUserNameAvailable(id) {
$.ajax({
url: "isUserAvailable.html",
data: ({emailId : id}),
async: false,
success: function(data) {
userAvailable = data;
}
});
}
});
</script>
好的,我用adMethod实现了这一点。。代码如下
<script type="text/javascript">
$(document).ready(function(){
var formAction = '';
var response;
$.validator.addMethod("uniqueUserName", function(value, element) {
var id = $('#userName').val();
if($('#accountNo').is(':checked')){
$.ajax({
url: "isUserAvailable.html",
data: ({emailId : id}),
async: false,
success: function(msg)
{
//If username exists, set response to true
response = ( msg == '1' ) ? true : false;
}
});
return response;
}
else{
return true;
}
}, "Username is Already Taken");
$("#myForm").validate({
onfocusout:false,
onkeyup:false,
onclick:false,
rules:{
j_username:{
required: true,
email: true,
minlength: 8,
uniqueUserName: true
}
},
messages: {
j_username:{
required: "Please enter a valid email address",
minlength: "Please enter a valid email address",
uniqueUserName: "Email ID already registered - please log in"
}
},
// the errorPlacement has to take the table layout into account
errorPlacement: function(error, element) {
if(element.is(":radio") )
error.appendTo( element.parent().next());
else
error.appendTo( element.parent());
},
submitHandler: function(form){
if($('#accountNo').is(':checked')){
var loginAction = '/MyApp/articles/add.html';
$('#myForm').attr('method','POST');
$('#myForm').attr('action',loginAction);
form.submit();
}
else{
var loginAction = '/MyApp/j_spring_security_check';
$('#myForm').attr('method','POST');
$('#myForm').attr('action',loginAction);
form.submit();
}
}
});
})
使用jqueryajax进行用户名可用性检查现在对我有效。我已经发布了帮助他人的代码。
<script type="text/javascript">
$(document).ready(function(){
var formAction = '';
var response;
$.validator.addMethod("uniqueUserName", function(value, element) {
var id = $('#userName').val();
if($('#accountNo').is(':checked')){
$.ajax({
url: "isUserAvailable.html",
data: ({emailId : id}),
async: false,
success: function(msg)
{
//If username exists, set response to true
response = ( msg == '1' ) ? true : false;
}
});
return response;
}
else{
return true;
}
}, "Username is Already Taken");
$("#myForm").validate({
onfocusout:false,
onkeyup:false,
onclick:false,
rules:{
j_username:{
required: true,
email: true,
minlength: 8,
uniqueUserName: true
}
},
messages: {
j_username:{
required: "Please enter a valid email address",
minlength: "Please enter a valid email address",
uniqueUserName: "Email ID already registered - please log in"
}
},
// the errorPlacement has to take the table layout into account
errorPlacement: function(error, element) {
if(element.is(":radio") )
error.appendTo( element.parent().next());
else
error.appendTo( element.parent());
},
submitHandler: function(form){
if($('#accountNo').is(':checked')){
var loginAction = '/MyApp/articles/add.html';
$('#myForm').attr('method','POST');
$('#myForm').attr('action',loginAction);
form.submit();
}
else{
var loginAction = '/MyApp/j_spring_security_check';
$('#myForm').attr('method','POST');
$('#myForm').attr('action',loginAction);
form.submit();
}
}
});