Ну это ты постарайся отвтить почему callback у тебя не функция
Быть может ты в checkFieldName вторым параметром функцию не передаешь.
В запускаемом примере ниже я сделал тоже самое что у тебя, только вместо асинхронного ответа сервера я просто так же асинхронно (только через 10 миллисекунд после вызова checkFieldName ) сгенерил случайный результат.
function checkFieldName(nm,callback){
setTimeout(function(){
var result=(Math.random()>0.5);
callback( result )
},10)
}
checkFieldName(12,function(result){
alert('результат проверки '+result)
})