我要做的是:
从下拉列表中选择作业时,我想在总计表中填充一个金额的hourlyRate字段。
这是我的下拉列表:
<fieldset>
<legend>What is your position?</legend>
<select name="job" id="job">
<option value="job0">Please select a position:</option>
<option value="job1">Server/Bartender</option>
<option value="job2">Greeter/Busser</option>
<option value="job3">Kitchen Support</option>
</select>
</fieldset>
这是我的总计表:
<div id="totals">
<table width="408">
<tr>
<td width="214">Hourly Rate:</td><td width="57" id="hourlyRate"></td></tr>
</table>
</div>
这是我的javascript:
var $ = function (id) {
return document.getElementById(id);
}
function rateChange () {
var rate="";
if ($('job').value == 'job0') {
rate = '0';
}
if ($('job').value == 'job1') {
rate = '12';
}
if ($('job').value == 'job2') {
rate = '10';
}
if ($('job').value == 'job3') {
rate = '11';
}
$('hourlyRate').innerHTML = "$ " + rate;
}
window.onload = function () {
$('job').onchange = rateChange();
}
因此,如果有人从下拉列表中选择server / bartender,我希望我的总计表中的hourlyRate字段显示$ 12。我无法弄清楚我做错了什么!
答案 0 :(得分:1)
您似乎正在立即调用您的函数,而不是在onchange
事件中调用它:
$('job').onchange = rateChange();
因此,rateChange
(无)的返回值被分配给onchange事件。
试试这个:
$('job').onchange = rateChange;
现在rateChange
函数是在onchange
事件触发时运行的函数。
答案 1 :(得分:0)
如果您想为事件添加处理程序功能,则不得添加括号...
你必须得到:
$('job').onchange = rateChange;
刚试过......工作正常。
如果您要添加括号,则该函数将仅在window.onload
...