2014-08-17 3 views
-2
<html> 
<head> 
<script> 
function dogName() 
{ 
    var rand = alert("Clint."); 
    var rand = alert("Bee."); 
    var rand = alert("Copper."); 
} 
</script> 
</head> 
<body> 
<form> 
<input type="button"  value="RandName" onClick='dogName()'> 
</form> 
</body> 
</html> 

В этом коде, функционируют dogName() три переменные: Clint, Bee и Copper. Я хочу сделать это, если вы нажмете кнопку (RandName), вы получите случайное имя, выбранное из функции, указанной выше. Я искал всюду для ответа, но безрезультатно. Заранее спасибо!Давать ФУНКЦИИ альтернативных выходов

ответ

1
<html> 
<head> 
<script> 
function dogName() 
{ 
var rand = [ 'Clint', 'Bee', 'Copper' ]; 
alert(rand[Math.floor(Math.random()*rand.length)]); 
} 
</script> 
</head> 
<body> 
<form> 
<input type="button"  value="RandName" onClick='dogName()'> 
</form> 
</body> 
</html> 

Создайте массив и выберите один случайный элемент.

+1

Это работало именно так, как я хотел! Спасибо огромное! – Dingo

3

Во-первых, ваша функция имеет только одна переменная, которая randwill be undefined, как alert() не return ничего вызывающего контекста.

Чтобы вернуть случайное имя, однако:

function dogName() { 
    var names = ['clint','Bee','Copper']; 
    return names[Math.floor(Math.random() * names.length)] 
} 

var name = dogName(); 

console.log(name); 

JS Fiddle demo.

И немного обновленная демо, чтобы показать вывод в элементе (идентифицированный это id):

function dogName() { 
    var names = ['Clint','Bee','Copper'], 
     index = Math.floor(Math.random() * names.length), 
     chosen = names[index]; 

    document.getElementById('output').value = chosen; 
    return chosen; 
} 

, который работает со следующим HTML:

<form> 
    <input type="button" value="RandName" onClick='dogName(this)' /> 
    <label>The generated dog-name is: <input id="output" readonly="readonly" /></label> 
</form> 

JS Fiddle demo.

Кроме того, это обычно считается лучше избегать использования атрибутов обработки событий в HTML (onclick, onfocus, onchange и т.д.), понятие бытия «ненавязчивый JavaScript»; вместо этого рассмотрим обработку привязки события в самом JavaScript (таким образом, все это в значительной степени в одном и том же месте и упрощает обслуживание и изменение (это обычно неизбежно в какой-то момент). Это один из подходов, который работает в большинстве современных браузеры (включая IE, начиная с версии 9 и далее):

function dogName() { 
    var names = ['Clint','Bee','Copper'], 
     index = Math.floor(Math.random() * names.length), 
     chosen = names[index]; 

    document.getElementById('output').value = chosen; 
    return chosen; 
} 

var button = document.querySelector('input[value="RandName"]'); 

button.addEventListener('click', dogName); 

JS Fiddle demo

Ссылки:.

Библиография:

+0

Большое вам спасибо. Это намного больше, чем я просил! Если бы я мог, я бы поднял голову. – Dingo

+0

Могу ли я спросить, почему этот ответ был неприемлем? Это ваша прерогатива и полностью ваше право изменить принятый ответ, но мне было бы интересно узнать, где я упал, чтобы я мог улучшить в будущем. –

+0

Я думаю, @DavidThomas, что, хотя ваш ответ содержит больше информации для Динго, другой был более прямым ответом на его вопрос. –