2013-10-08 5 views
0

Je sais que je dois ajouter return false; pour fonctionner appelé dans onsubmit (je l'ai ajouté à la fonction et onsubmit = "" en HTML). Mais cela ne fonctionne pas ... Page freshing après avoir appuyé sur Entrée ou en cliquant sur le bouton soumettre.Submit ne peut pas voir return false;

JavaScript formes générées:

AnswersHTML += "<div><form onsubmit='cheking(this," + a + "," + b + ", this); return false;'><input class='put' type='text' size='40'><input type='submit' value='Проверить'></form> 

et la fonction

function checking(answer, nums, numq, what) { 
var usr = answer; 
if (isNaN(answer)) { 
    usr = answer.value; 
    if (answer.value.length == "") { 
     usr = "Вы ничего не ввели!" 
    } 
    else { 
     answer = answer.value.toLowerCase(); 
    } 
} 
if (answer == correct[nums][numq]) { 
    $(what).parent().parent().append("<br><span class='right'>Ответ: " + usr + "<br>Правильно!</span>").slideDown(); 
    $(what).parent().parent().find(".put").remove(); 
    $("#board").animate({ backgroundColor: '#2ecc71'}); 
    $("#board").animate({ backgroundColor: '#f1c40f'}, 1000); 
    if (isPhysics[nums][numq]) { 
     physics++; 
     $("#presult").text(physics); 
    } 
    else { 
     life++; 
     $("#lresult").text(life); 
    } 
} 
else { 
    $("#board").animate({ backgroundColor: '#e74c3c'}); 
    $("#board").animate({ backgroundColor: '#f1c40f'}, 1000); 
    var desciptionToWrong = "<br>" + description[nums][numq]; 
    if (description[nums][numq] == false) { 
     desciptionToWrong = "" 
    } 
    $(what).parent().parent().append("<br><span class='wrong'>Ответ: " + usr + "<br>Неправильно!" + desciptionToWrong + "</span>") 
    $(what).parent().parent().find(".put").remove(); 
    $(what).remove(".pressenter"); 
} 
return false; 

}

Désolé pour mon code peut-être dégueulasse

Voici la page complète https://rawgithub.com/ruslankh/Kurchatovy/master/index.html

Problème dans la fonction parce que quand je suis remplacé fonction de juste alerte, il était bien

+0

essayer 'retour contrôle (...),' 'au lieu de seulement la vérification (...)' – rps

+0

il y a peu de script erreurs dans la méthode 'checking' ... le paramètre' response' fait référence à l'élément 'form' et non à l'élément' input' ... donc 'answer.value' sera indéfini et' answer.value.length' lancera un erreur –

+0

@rps n'a pas aidé ( – Ruslan

Répondre

0

Son probablement en raison de type. Vous avez une mauvaise orthographe dans l'appel de fonction qui provoquerait une erreur et l'appel va au serveur.

changement

'cheking(this," + a + "," + b + ", this); 

Pour

'checking(this," + a + "," + b + ", this); 
0

Votre ligne a onclick une faute de frappe, vous avez quitté l'un des c est hors de nom de la fonction. Cette erreur termine probablement le gestionnaire de clic avant qu'il ne soit aussi loin que l'instruction return.

0

Essayez ceci,

AnswersHTML += "<div><form data-a='"+a+"' data-b='"+b+"' class='myform'><input class='put... " 

SCRIPT

$(function(){ 
    $(document).on('submit','form.myform',function(){ 
     checking(this, $(this).data('a'), $(this).data('b'), this); 
     return false; 
    }); 
}); 
Questions connexes