1

関数が正常に機能している(jQuery懸賞ジェネレーター)という奇妙な問題がありますが、ブラウザーの戻るボタンを押さないと出力が表示されません。コードは次のとおりです。

$(document).ready(function() {
$("input[name=Submit]").click(function() {
    var x = $("input[name=playerNumber]").val();
    var y = $("input[name=teamNumber]").val();
    var playerArray = new Array(x);
    var teamArray   = new Array(y);
    var areaToAddTo = $('#playerArea');
    for (var i = 0; i < x; i++) {
        playerArray[i] = prompt("What is the name of player "+(i+1)+"?");
    }
    for (var j = 0; j < y; j++) {
        teamArray[j] = prompt("What is the name of team "+(j+1)+"?");
    }
    var teamsToLeaveOut = teamArray.length % playerArray.length;
    var count = 0;
    var randomNumber;
    while (count < teamsToLeaveOut) {
        randomNumber = Math.floor(Math.random()*(teamArray.length));
        teamArray.splice(randomNumber, 1);
        count++;
    }
    count = teamArray.length;
    var spliceTeam;
    var l;
    while (count > 0) {
        for (i = 0; i < playerArray.length; i++) {
            randomNumber = Math.floor(Math.random()*teamArray.length);
            spliceTeam = teamArray[randomNumber];
            l += ('<h3>'+playerArray[i]+'</h3>');
            l += ('<p>'+spliceTeam+'</p>');
            teamArray.splice(randomNumber,1);
            count--;
        }
    }
    if (1 == 1) {
        areaToAddTo.append(l);
    }
});
});

関数を実行すると、画面には何も書き込まれず、ブラウザのURLは次のようになります。 /sweepstake.html?playerNumber=2&teamNumber=5&Submit=Submit

戻るボタンを押すと、出力は本来あるべき状態になり、ブラウザのURLは次のようになります。 /sweepstake.html

これを修正する方法について何か提案はありますか?

ありがとう。

4

2 に答える 2

3

フォームが送信されています。送信を禁止すると、フォームに戻る必要がなくなります。

    ...
    if (1 == 1) { // ??
        areaToAddTo.append(l);
    }
    return false;
});
});
于 2012-06-19T14:59:36.937 に答える
0

コメントで述べたように、ブラウザはフォームを送信しようとしています。これにより、新しいURLに移動しますが、これは必要なものではありません。代わりに単純な古いボタンを使用して関数を開始するか、ハンドラーの最後の行でfalseを返すことによってデフォルトの送信動作を防止してください。

于 2012-06-19T14:59:53.333 に答える