Как я могу вернуть случайное значение из массива? - PullRequest
29 голосов
/ 06 августа 2010

Я использую плагин проверки 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
 });

Это выбирает случайное значение, ноиспользует одно и то же значение для каждого сообщения об успехе вместо выбора другого для каждого поля.

Ответы [ 3 ]

84 голосов
/ 06 августа 2010

Вы можете сохранить массив 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());
6 голосов
/ 22 апреля 2015

Мы можем добавить метод к массиву.

Array.prototype.getRandomVal = function(){
    return this[Math.floor(Math.random()*this.length)];
};

messages.getRandomVal();
4 голосов
/ 06 августа 2010
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
         });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...