我有一个奇怪的问题,我的功能正常工作(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
有关如何解决此问题的任何建议吗?
感谢。
答案 0 :(得分:3)
您的表单正在提交,阻止提交,您无需返回。
...
if (1 == 1) { // ??
areaToAddTo.append(l);
}
return false;
});
});
答案 1 :(得分:0)
如评论中所述,浏览器正在尝试提交表单,这会将您带到一个新网址,这不是您想要的。要么使用普通的旧按钮来启动你的功能,要么通过在你的处理程序的最后一行返回false来阻止默认的提交行为。