с учетом следующего: где data
- строка, полученная в качестве значения AJAX, а данные имеют значение 'good':
console.log data # good
console.log typeof data # string
console.log typeof 'data' # string
if data is 'good'
console.log 'test' # NOTHING!!!
Я не понимаю ...
заставляет меня хотеть старый добрый JavaScript ...
Более полный пример после предложения:
Следующее также не работает ...
$('#profile_slug').keyup(()->
if $(this).val() != original_slug
value = encodeURIComponent $(this).val()
console.log value
$.get('/live_validate/slug?slug='+value, (data)->
console.log data
console.log typeof data
console.log typeof 'data'
`
if (data == 'good') {
console.log('test');
}
`
обновление 2
как ни странно:
console.dir data
console.dir 'good'
good
No Properties
good
No Properties
обновление 3
контроллер
if @slug.nil?
@message = "good"
else
@message = "bad"
end
просмотр
!= @message
coffeescript
new_data = data.replace /^\s+|\s+$/g, ""
результат
то же самое *
обновление 4 + ответ
Этот код оказался тем, что мне было нужно, поначалу он не очень хорошо работал со всем остальным, что у меня происходило, но это последняя часть головоломки, позволяющая мнечтобы не было невидимых пробелов до или после полученной строки.
$.get('/live_validate/slug?slug='+value, (data)->
# console.log data
stripped_data = data.replace /^\s+|\s+$/g, ""
# console.log encodeURIComponent data
# console.log (data.charCodeAt(i) for i in [0...data.length])
if stripped_data is 'good'
$('#profile_slug').addClass('valid-field')
$('#profile_slug').removeClass('invalid-field')
else if stripped_data is 'bad'
$('#profile_slug').addClass('invalid-field')
$('#profile_slug').removeClass('valid-field')