除非我按下“后退”按钮,否则jQuery结果不显示

时间:2012-06-19 14:53:10

标签: javascript jquery html back

我有一个奇怪的问题,我的功能正常工作(jQuery sweepstake生成器),但它不显示输出,除非我按下浏览器上的后退按钮。代码是:

$(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);
    }
});
});

在运行该功能时,屏幕上没有任何内容,浏览器网址为: /sweepstake.html?playerNumber=2&teamNumber=5&Submit=Submit

按下后退按钮时输出正常,浏览器网址为: /sweepstake.html

有关如何解决此问题的任何建议吗?

感谢。

2 个答案:

答案 0 :(得分:3)

您的表单正在提交,阻止提交,您无需返回。

    ...
    if (1 == 1) { // ??
        areaToAddTo.append(l);
    }
    return false;
});
});

答案 1 :(得分:0)

如评论中所述,浏览器正在尝试提交表单,这会将您带到一个新网址,这不是您想要的。要么使用普通的旧按钮来启动你的功能,要么通过在你的处理程序的最后一行返回false来阻止默认的提交行为。