Как вернуть случайное значение из массива?
Я использую плагин проверки 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] = "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
});
Это выбирает случайное значение, но использует одно и то же значение для каждого сообщения успеха, а не для выбора другого для каждого поля.
Ответы
Ответ 1
Вы можете сохранить массив messages
и рассчитать сообщение, которое будет отображаться по ходу, например:
var messages = ["Good!", "Great!", "Awesome!", "Super!", "Nice!"];
function getMessage() {
return messages[Math.floor(Math.random() * messages.length)];
}
Попробуйте здесь, затем просто позвоните getMessage
в .text()
, например:
label.addClass("valid").text(getMessage());
Ответ 2
function sucess() {
message = ["Good!","Awesome!","Super!","Nice!","Great!"];
return message[Math.floor(Math.random() * message.length)];
}
$(document).ready(function(){
var validator = $(".contactform").validate({ ...
success: function(label) {
label.addClass("valid").text(success());
}
}); //end form validate code
});
Ответ 3
Мы можем добавить метод в массив.
Array.prototype.getRandomVal = function(){
return this[Math.floor(Math.random()*this.length)];
};
messages.getRandomVal();