0
livevalidation.js를 사용하여 ajax 요청이 true 또는 false 인 경우이를 catch 할 방법이 없습니다. PHP는 항상 false 또는 true로 실행되는 모든 사용자 이름을 반환합니다.livevalidation에서 항상 false를 반환합니다.
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);
}
});
}
의견을 보내 주신 @Svetlio에게 감사드립니다. livevalidation.js의 결과는 여전히 "Username Already Taken"입니다. – jalf