簡體   English   中英

Java的新手。 此代碼有什么問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM