Javascript的问题&;AJAX-select表单的事件侦听器&x27;你不想改变吗?
我对javascript相当陌生,我正在建立一个基本的网站,有人可以通过一个小型的汽车数据库进行搜索,当用户选择搜索条件时,该数据库会更新搜索结果 我试图通过在html中创建一个表单来实现这一点,该表单包含多个选择(代码1),javascript包含事件监听器用于选择,ajax通过PHP文件搜索数据库(代码2) 代码1-HTMLJavascript的问题&;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>
<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> 
<!-- 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> 
<!-- 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> 
<!-- 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> 
<!-- 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> 
<!-- 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);