Javascript 如何从数组中返回随机值?
我正在使用jQuery验证插件,希望在成功时返回一个随机值 现在我正在尝试使用:Javascript 如何从数组中返回随机值?,javascript,Javascript,我正在使用jQuery验证插件,希望在成功时返回一个随机值 现在我正在尝试使用: var success_message = new Array (); success_message[0] = "Good!"; success_message[1] = "Ok!"; success_message[2] = "Great!"; success_message[3] = "Perfect!"; success_message[4] =
var success_message = new Array ();
success_message[0] = "Good!";
success_message[1] = "Ok!";
success_message[2] = "Great!";
success_message[3] = "Perfect!";
success_message[4] = "Nice!";
success_message[5] = "Awesome";
var i = Math.floor(5 * Math.random())
然后,我需要输出我使用的值:
$(document).ready(function(){
var validator = $(".contactform").validate({
success: function(label) {
label.addClass("valid").text(success_message[i])
}
}); //end form validate code
});
这会选择一个随机值,但对每个成功消息使用相同的值,而不是为每个字段选择不同的值。您可以存储
消息
数组,并计算消息以在运行时显示,如下所示:
var messages = ["Good!", "Great!", "Awesome!", "Super!", "Nice!"];
function getMessage() {
return messages[Math.floor(Math.random() * messages.length)];
}
label.addClass("valid").text(getMessage());
,然后只需在通话中调用getMessage
,如下所示:
var messages = ["Good!", "Great!", "Awesome!", "Super!", "Nice!"];
function getMessage() {
return messages[Math.floor(Math.random() * messages.length)];
}
label.addClass("valid").text(getMessage());
我们可以将方法添加到数组中
Array.prototype.getRandomVal = function(){
return this[Math.floor(Math.random()*this.length)];
};
messages.getRandomVal();
@布兰登-一旦被问到问题,你应该避免彻底改变。现在的答案对后来发现这个问题的人来说意义不大,因为这个问题与答案不再匹配。你是对的,我在编辑它之后就想到了这一点。在我编辑它的时候,它没有答案。这与jQuery验证无关。它几乎可以工作,但为每个字段元素返回相同的消息。@BandonRandon-我以为你只有一个,就一会儿:)@BandonRandon-更新为每个元素随机,我建议您进一步删除使用过的消息,这样就不能重复了。对不起,我应该说清楚每个表单元素都有一个。太好了!谢谢,还有几个问题,如果我真的想让它不再重复,我会怎么做?也因为它是在keyup上初始化的,所以它会随着每次按键或鼠标单击而重新生成。我可以用stop()或其他方法来停止吗?