Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript的问题&;AJAX-select表单的事件侦听器&x27;你不想改变吗?_Javascript_Ajax_Forms_Xmlhttprequest_Addeventlistener - Fatal编程技术网

Javascript的问题&;AJAX-select表单的事件侦听器&x27;你不想改变吗?

Javascript的问题&;AJAX-select表单的事件侦听器&x27;你不想改变吗?,javascript,ajax,forms,xmlhttprequest,addeventlistener,Javascript,Ajax,Forms,Xmlhttprequest,Addeventlistener,我对javascript相当陌生,我正在建立一个基本的网站,有人可以通过一个小型的汽车数据库进行搜索,当用户选择搜索条件时,该数据库会更新搜索结果 我试图通过在html中创建一个表单来实现这一点,该表单包含多个选择(代码1),javascript包含事件监听器用于选择,ajax通过PHP文件搜索数据库(代码2) 代码1-HTML <div class="intro"> <p>Enter your search criteria:</p>

我对javascript相当陌生,我正在建立一个基本的网站,有人可以通过一个小型的汽车数据库进行搜索,当用户选择搜索条件时,该数据库会更新搜索结果

我试图通过在html中创建一个表单来实现这一点,该表单包含多个选择(代码1),javascript包含事件监听器用于选择,ajax通过PHP文件搜索数据库(代码2)

代码1-HTML

<div class="intro">
        <p>Enter your search criteria:</p>

            <div id="formbox">
                <form>
                    <!-- MAKE SELECTION -->
                    <select name="make" id="selectmake">
                    <option value="test">Car Make:</option>
                    <option value="Aston Martin">Aston Martin</option>
                    <option value="Ford">Ford</option>
                    <option value="Lotus">Lotus</option>
                    <option value="Vauxhall">Vauxhall</option>
                    </select>&emsp;

                    <!-- MODEL SELECTION -->
                    <select name="model" id="selectmodel">
                    <option value="">Car Model:</option>
                    <option value="DB9 Coupe">DB9 Coupe</option>
                    <option value="Vanquish">Vanquish</option>
                    <option value="Fiesta Hatchback">Fiesta Hatchback</option>
                    <option value="Focus Hatchback">Focus Hatchback</option>
                    <option value="Mondeo Estate">Mondeo Estate</option>
                    <option value="Elise">Elise</option>
                    <option value="Exige">Exige</option>
                    <option value="Astra Hatchback">Astra Hatchback</option>
                    <option value="Corsa D">Corsa D</option>
                    <option value="Frontera 4x4">Frontera 4x4</option>
                    </select>&emsp;

                    <!-- YEAR SELECTION -->
                    <select name="year" id="selectyear">
                    <option value="">Car Year:</option>
                    <option value="1998">1998</option>
                    <option value="2000">2000</option>
                    <option value="2001">2001</option>
                    <option value="2004">2004</option>
                    <option value="2007">2007</option>
                    <option value="2009">2009</option>
                    <option value="2010">2010</option>
                    </select>&emsp;

                    <!-- CC SELECTION -->
                    <select name="cc" id="selectcc">
                    <option value="">Car CC:</option>
                    <option value="1250">1250</option>
                    <option value="1400">1400</option>
                    <option value="1600">1600</option>
                    <option value="1800">1800</option>
                    <option value="2000">2000</option>
                    <option value="3200">3200</option>
                    <option value="5900">5900</option>
                    <option value="6000">6000</option>
                    </select>&emsp;

                    <!-- COLOUR SELECTION -->
                    <select name="colour" id="selectcolour">
                    <option value="">Car Colour:</option>
                    <option value="Black">Black</option>
                    <option value="Blue">Blue</option>
                    <option value="Red">Red</option>
                    <option value="Silver">Silver</option>
                    </select>&emsp;

                    <!-- RESET SELECTIONS -->
                    <input type="reset" />
                </form>
            </div>
        </div>

        <!-- SEARCH RESULTS -->
        <div id="results">
            Your results will be displayed here
        </div>
变量“i”是用来测试的。。。我确实做到了这一点,当加载页面时,results div将显示'I'变量,但在'make'选择框中进行新选择时,它没有改变

由于某些原因,我的代码现在根本无法工作,它甚至不会显示“启动工作”


非常感谢您的帮助。

addEventListener将函数作为第二个参数,因为您没有传递函数,而是调用函数。您可以使用匿名函数表达式包装调用
addEventListener
中的代码。对于每个对
addEventListener
的调用,请执行以下操作

make.addEventListener('change', function(){
    setmake(this.value)
}, false);

首先要检查的是浏览器控制台中是否抛出任何脚本错误。我得到的唯一错误是:[01:35:08.882]TypeError:结果未定义Hanks,这很有意义,每次使用所选选项的值进行新选择时,此函数是否会运行?我现在似乎无法测试它,因为某种原因,.js文件中的任何内容都无法工作编辑我已经根据您的建议更新了代码,但现在得到一个TypeError:make isnull@user1952067您是否调用了
var make=document.getElementById(“selectmake”)
beforeyes,但是在修复之前我收到的一个错误是关于我的results变量的TypeError:
var results=document.getElementById(“results”)我开始工作了,你认为getElementById函数有问题吗?我不知道为什么,但它决定重新开始工作,你一定很神奇。无论如何,修复工作,非常感谢:)
make.addEventListener('change', function(){
    setmake(this.value)
}, false);