2010-08-05 7 views
23

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 
}); 

을하지만, 각각에 대해 동일한 값을 사용 성공 메시지 대신에 각 필드에 대해 다른 메시지를 선택하십시오.

+0

@Brandon - 질문을 받으면 크게 변경하지 마십시오. 이 질문은 더 이상 답변과 일치하지 않기 때문에 나중에 답을 찾으면 누구나 쉽게 답을 찾을 수 없습니다. –

+0

내가 편집 한 것을 생각하면 맞을 것입니다. 내가 편집 할 당시에는 대답이 없었습니다. – BandonRandon

+0

이것은 jQuery 유효성 검사와 아무 관련이 없습니다. –

답변

73

당신은 messages 배열을 저장하고이 같이 가서 보여주기 위해 메시지를 계산할 수 있습니다

var messages = ["Good!", "Great!", "Awesome!", "Super!", "Nice!"]; 
function getMessage() { 
    return messages[Math.floor(Math.random() * messages.length)]; 
} 

Give it a try here, 그럼 당신의 .text() 호출 getMessage 전화, 같은 :

label.addClass("valid").text(getMessage()); 
+0

거의 작동하지만 각 필드 요소에 대해 동일한 메시지를 반환합니다. – BandonRandon

+0

@BandonRandon - 나는 단지 하나의 순간을 보냈습니다. :) –

+0

@BandonRandon - 요소마다 임의로 업데이트되었으므로 한 걸음 더 나아가 사용 된 메시지도 제거 할 것을 제안합니다. , 그래서 그것은 반복 될 수 없다. –

3
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(); 
관련 문제