2015-05-12 71 views
0

我是JavaScript新手,我正在從html表單獲取有關內容的練習。 我不想麻煩日期選擇器。只是檢查。 下面是一些代碼: 簡單時代的JS表單不起作用

<html> 

<title>JavaScript example</title> 

<script type="text/javascript"> 

function onload() { 

var age = document.getElementById('v').value; 
var res = (age >= 18) ? "Adult" : "Minor"; 


} 
function open(){ 

alert(res); 
} 
</script> 

<body onload="onload();"> 
<input type="text" name="AREA" value="" id="v"/> 
<input type="button" value="click" onclick="open();"/> 
</body> 

</html> 

我的HTML工作正常,但是當我點擊按鈕,所有的網頁一片空白,沒有什麼。 有些幫助?

+0

只是想顯示警報。我可以休息一下。 –

+0

有什麼問題嗎? –

+0

'res'是'onload()'的局部變量,所以它沒有在'open()'中定義,使它成爲全局可以解決這個問題。 –

回答

2

你有兩個問題:

  1. 正如其他人所指出的,因爲你在你的onload函數定義了res變量是局部的功能,並打開的功能,還看不出來。
  2. 導致頁面變空白的另一個問題是使用名稱open作爲您的函數。 JavaScript有一個document.open函數,當你點擊你的按鈕時,你就是在調用它。我會將你的函數重命名爲其他東西來防止它。

作爲最後一點,你可能不想運行你的第一個函數onload,因爲輸入還沒有值。 jsFiddle example

+0

@Shashank - 也許這將有助於清除它:「關於open()方法的一個重要觀點是它幾乎總是作爲window.open()被調用,即使window指向全局對象,因此應該是完全可選的。由於文檔對象也有一個open()方法,所以當我們想要打開一個新窗口時指定窗口對象對於清晰起見非常重要。在事件處理程序中,您必須指定window.open()而不是簡單地使用open()。由於JavaScript中靜態對象的範圍限制,在不指定對象名稱的情況下調用open()就相當於document.open()。「 – j08691

+0

來源:http://www.webreference.com/js/tips/000423.html。另請參閱http://stackoverflow.com/questions/9966182/what-is-the-difference-between-open-and-window-open-in-firefox – j08691

+1

我現在明白了,謝謝! +1。 – Shashank