我无法使用livevalidation.js捕获ajax请求是真是假。无论php函数执行什么,它总是返回用户名,返回false或true;
PHP代码
public function valid_username()
{
$is_username_exist = 'some query here';
if($is_username_exist == true){
$output['success'] = true;
}else{
$output['success'] = false;
}
echo json_encode($output);
}JS代码
$(document).ready( function() {
var username = new LiveValidation('username',{validMessage: 'Available', wait:500});
username.add( Validate.Presence );
username.add( Validate.Length, { minimum: 4, maximum: 10 } );
username.add( Validate.Custom, { against: function() { return check_username_availability( 'username', '#username', base_url+'cms-profile/profile_ajax/valid_username');}, failureMessage: 'Username already taken' } );
});
function check_username_availability(name, id, postUrl)
{
var dataVal = name+'='+$(id).val();
$.ajax({
url: postUrl,
cache: false,
type: 'post',
dataType: 'json',
data: dataVal,
async: false,
success: function(data) {
return $.parseJSON(data);
}
});
}发布于 2012-10-23 18:55:09
在使用ajax进行POSTing时,可以这样设置数据:
$.ajax({
url: postUrl,
cache: false,
type: 'post',
dataType: 'json',
data: {'name':name , 'id': id},
async: false,
success: function(data) {
return data.success;
}
}); 并且不要使用parseJSON。不需要,因为您可以直接返回您的响应值。
https://stackoverflow.com/questions/13028835
复制相似问题