How can I return a random value from an array?
I'm using the jQuery validate plugin, and would like to return a random value on success.
Right now I'm trying to use:
var success_message = new Array ();
success_message[0] = "Good!";
success_message[1] = "Ok!";
success_message[2] = "Great!";
success_message[3] = "Perfe开发者_运维百科ct!";
success_message[4] = "Nice!";
success_message[5] = "Awesome";
var i = Math.floor(5 * Math.random())
Then where I need to output the value I use:
$(document).ready(function(){
var validator = $(".contactform").validate({
success: function(label) {
label.addClass("valid").text(success_message[i])
}
}); //end form validate code
});
This selects a random value but uses the same value for each success message instead of selecting a different one for each field.
You can store the messages
array and calculate the message to show as you go, like this:
var messages = ["Good!", "Great!", "Awesome!", "Super!", "Nice!"];
function getMessage() {
return messages[Math.floor(Math.random() * messages.length)];
}
Give it a try here, then just call getMessage
in your .text()
call, like this:
label.addClass("valid").text(getMessage());
We can add Method to Array.
Array.prototype.getRandomVal = function(){
return this[Math.floor(Math.random()*this.length)];
};
messages.getRandomVal();
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
});
精彩评论