[英]New to Javascript. What is wrong with this code?
我也是javascript的新手,無法使此代碼正常工作。 我已經用谷歌搜索了如何使用下拉菜單,但是每當我嘗試運行此代碼時,它似乎都無法正常工作。 每當我設置form.value =“ net”時,if語句就會起作用,那么為什么在比較form.value =“ test”時卻不起作用?
<!DOCTYPE html>
<html>
<head>
<title> Hello</title>
</head>
<body>
<form>
<input type="text" value="Name here" id="testing" />
</form>
<br/>
<select id="inout">
<option value="net" selected="selected">next</option>
<option value="test">test</option>
</select>
</body>
<script type="text/javascript">
var form;
var actual;
form = document.getElementById('inout');
form.addEventListener('change', test (), false);
function test()
{
if(form.value == "test")
{
window.location.href = 'index.html';
}
}
</script>
<style type="text/css">
body{
text-align: center;
}
</style>
</html>
編輯:謝謝大家,這真令人沮喪。
在form.addEventListener('change', test (), false);
您正在調用test
並將其返回值( undefined
)作為回調傳遞給addEventListener
。
addEventListener需要一個函數作為其第二個參數。 從語法上講,這意味着刪除代碼中函數名稱后的括號:
form.addEventListener('change', test, false);
您可以這樣理解這行:
每當'change'事件冒泡到
form
引用的元素時,請調用test
引用的函數。
改變這個。
form.addEventListener('change', test (), false);
對此
form.addEventListener('change', test, false);
當您編寫test()時,它不會在更改事件上立即調用該函數。
您的聽眾設置不正確。
form.addEventListener('change', test (), false);
請注意, test
之后如何包含()
? 這意味着您已經運行了該函數(不返回任何內容)。 這是您的程序實際執行的操作:
form.addEventListener('change', undefined, false);
因此,每次更改下拉菜單時,都不會發生任何變化。 它需要看起來像這樣:
form.addEventListener('change', test, false);
當表單更改時,將運行功能test
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.