2013-12-17 242 views
-5

我遇到以下代码的问题。我试图从我的数组中获得一个随机字符串,以便在单击按钮时显示。简单的JavaScript代码不起作用

<script> 
    var button = document.getElementById("button"); 
    var div = document.getElementById("box"); 
    var text = document.getElementById("text"); 
    var array=[ "thanks for clicking", "keep on clicking", "click one more time", "why do you keep on clicking me?", "stop clicking me!"]; 
function thing(){ 
    var y = array[Math.floor((Math.random() * array.length)+1)]; 
    text.value=y; 
} 

function what(){ 
    text.value = "what";  
} 
</script> 
<body> 
<form> 
<input type="button" id="button" value="click" onClick="what()" /> 
</form> 
<form> 
    <input type="text" id="text" value="hey" /> 
</form> 
</body> 
+1

错在你的代码? – showdev

+1

将脚本移动到'

' – karthikr

+0

以下时,您是否曾打电话() –

回答

0

我在这里发现了几个问题。

您有两个不必要的表单标签,表单标签需要有一个名称和标识。至少名称属性必须在那里。

检查以下小提琴

http://jsfiddle.net/ayyadurai/3Ru9T/

<form name="form1" id="form1"> 
    <input type="button" id="button" value="click" onClick="what()" /> 

    <input type="text" id="text" value="hey" /> 
    </form> 




var button = document.getElementById("button"); 
var div = document.getElementById("box"); 
var text = document.getElementById("text"); 
var array=[ "thanks for clicking", "keep on clicking", "click one more time", "why do you keep on clicking me?", "stop clicking me!"]; 


function thing(){ 
var y = array[Math.floor((Math.random() * array.length)+1)]; 
form1.text.value=y; 

}

function what(){ 
form1.text.value = "what"; 
      thing(); 

}

0

您的声明不起作用 - 而且您也没有调用方法将随机项从数组中放置到位。

这将工作:

<script> 
    function thing() { 
     var array = ["thanks for clicking", "keep on clicking", "click one more time", "why do you keep on clicking me?", "stop clicking me!"]; 

     var y = array[Math.floor((Math.random() * array.length) + 1)]; 
     document.getElementById("text").value = y; 
    } 

    function what() { 
     document.getElementById("text").value = "what"; 
    } 
</script> 
<body> 
    <form> 
     <input type="button" id="button" value="click" onclick="thing()" /> 
    </form> 
    <form> 
     <input type="text" id="text" value="hey" /> 
    </form> 
</body> 
1

你需要你的JavaScript块移动到下面的表格。

当您设置:

var text = document.getElementById("text"); 

元素还不存在。如果您将脚本块移动到表单下方,则该元素将在JavaScript被调用之前存在。

+1

是许多问题之一。 – canon