У меня было несколько проблем.
Во-первых, мой Ajax-запрос не имел функции обратного вызова.Спасибо Rawri за указание на это.Код теперь следующий:
$.getJSON("/chk_chn", { name: channel_name} )
.done(function( json ) {
console.log(json.result)
// Check Name Uniqueness
if (json.result === false) {
$("#chn_name").after('<span class="error">Channel name already exists</span>');
}
else {
// Check Channel Length
if (channel_name.length > 20) {
$("#chn_name").after('<span class="error">Channel Name exceeds maximum length</span>');
return false
}
else {
// Create Channel
socket.emit("create_channel", {"channel_name": channel_name})
// Close the modal
return true;
}
}
})
.fail(function(jqxhr, textStatus, error) {
var err = textStatus + ", " + error;
console.log("Request Failed: " + err);
});
Моя вторая и еще более глупая проблема заключалась в том, что запрос Ajax вызывался кнопкой, существовавшей в модале.Когда кнопка была нажата, модальное окно было закрыто, и javascript был перегенерирован на новой странице, что полностью отбросило мой запрос.
Я исправляю это, возвращая false в моей форме
<form role="form" id="submit_channel" onsubmit="return false">