我認爲這將是一些明顯的問題,但我無法弄清楚。我希望有一個人可以幫助我。jQuery ajax返回
所以我有3張幻燈片滑塊 - 簡介,提問,提交
現在我要確保,如果問題是回答錯誤的人不能滑動提交。
移動滑塊功能是這樣的:
function changeSlide(slide){
// In case current slide is question check the answer
if (jQuery('.modalSteps li.current',base).hasClass('questionStep')){
checkAnswer(jQuery('input[name="question_id"]',base).val(), jQuery('input[name="answer"]:checked',base).val());
}
jQuery('.modalSteps li.current',base).fadeOut('fast',function(){
jQuery(this).removeClass('current');
jQuery(slide).fadeIn('fast',function(){
jQuery(slide).addClass('current');
});
});
// In case the new slide is question, load the question
if (jQuery(slide).hasClass('questionStep')){
var country = jQuery('input[name="country"]:checked',base).val();
loadQuestion(country);
}
}
現在,你可以在第一線看到,我調用函數checkAnswer,這需要問一答的ID的ID,並把它傳遞給AJAX呼叫。
function checkAnswer(question, answer){
jQuery.ajax({
url: window.base_url+'ajax/check_answer/'+question+'/'+answer+'/',
success: function(data){
if (!data.success){
jQuery('.question',base).html(data.message);
}
}
});
}
我遇到的問題是,我不能說
if(checkAnswer(...)){}
因爲阿賈克斯的它總是返回false或未定義。我需要的是這樣的:
function changeSlide(slide){
// In case current slide is question check the answer
if (jQuery('.modalSteps li.current',base).hasClass('questionStep')){
if (!checkAnswer(jQuery('input[name="question_id"]',base).val(), jQuery('input[name="answer"]:checked',base).val())){
return false;
}
}
...
因此,它會阻止幻燈片繼續前進。
現在,當我想到它時,我可能會有像「錯誤答案」那樣的幻燈片,所以我可以將幻燈片放在那裏,但我希望看到第一個解決方案。
謝謝你的提示
您是否試過讓您的ajax調用同步?因爲你應該。並且在你的檢查答案中,你應該有一些在成功函數 – vol7ron