0

return false; を追加する必要があることはわかっています。onsubmit で呼び出される関数に (HTML の function と onsubmit="" に追加しました)。しかし、それは機能しません... Enterを押すか、送信ボタンをクリックした後のページの更新。

JavaScript 生成フォーム:

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

と機能

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;

}

おそらく嫌なコードで申し訳ありません

全ページはこちらhttps://rawgithub.com/ruslankh/Kurchatovy/master/index.html

機能の問題

4

3 に答える 3

0

これを試して、

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

脚本

$(function(){
    $(document).on('submit','form.myform',function(){
        checking(this, $(this).data('a'),  $(this).data('b'), this);
        return false;
    });
});
于 2013-10-08T06:46:06.807 に答える
0

インラインの onclick にタイプミスがあります。関数名から c の 1 つを残しました。このエラーは、クリック ハンドラーが return ステートメントに到達する前に終了する可能性があります。

于 2013-10-08T06:42:44.357 に答える
0

タイプによるのでしょう。関数呼び出しのスペルが間違っているため、エラーが発生し、呼び出しがサーバーに送られます。

変化する

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

 'checking(this," + a + "," + b + ", this);  
于 2013-10-08T06:41:23.320 に答える